Здесь я должен периодически запускать асинтаск, скажем, с интервалом в каждые 5 секунд. Ниже мой код,
//вызываем асинтаск с интервалом в 5 секунд
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask()
{
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try
{
new PerformBackgroundTask().execute();
}
catch (Exception e)
{
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 5000); //execute in every 5s*
}
// вызов асинтаска с интервалом в 5 секунд
public class PerformBackgroundTask extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Call at interval of 5 seconds" + "" + count , 500).show();
}
});
count++;
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
Он запускается полностью в первый раз, когда я запускаю свое приложение, это означает, что всплывающее сообщение появляется с интервалом каждые 5 секунд. Теперь, когда я закрываю приложение и снова перезапускаю, появляется два всплывающих сообщения (это означает, что я могу сказать, что создается второй экземпляр класса), и новые всплывающие сообщения создаются каждый раз, когда я перезапускаю приложение. Мне нужно только одно всплывающее сообщение (первое) каждый раз, когда я перезапускаю приложение. Как я могу это сделать?