У меня в коде toast вызывается бесконечно, но я хочу чтобы он вызывался условно каждые 20 секунд. Как я могу это реализовать?
Для этого можно создать отдельный AsyncTask
, который будет через каждые n секунд показывать Toast
. Переменная boolean showToast
отвечает за цикл, пока она true
, тосты будут всплывать.
class ShowToastTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
try{
while (showToast) {
TimeUnit.SECONDS.sleep(20);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast toast = Toast.makeText(getApplicationContext(),
"Toast msg", Toast.LENGTH_SHORT);
toast.show();
}
});
}
}catch (InterruptedException e){
e.printStackTrace();
}
return null;
}
}
Вызвать его можно на пример в методе onCreate()
ShowToastTask toastTask = new ShowToastTask();
toastTask.execute()
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Приложение отдает одинаковые данные клиентамНапример список стран
В этом методе происходит реверс слова с использованием рекурсии и без неё