Тук трябва периодично да изпълнявам asynctask, например на всеки 5 секунди. По-долу е моят код,
// извикване на asynctask на интервал от 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*
}
// извикване на asynctask на интервал от 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 секунди. Сега, когато затворя приложението и рестартирам отново, има две тост съобщения (означава, че мога да кажа, че е създадено второ копие на класа) и нови тост съобщения се създават всеки път, когато рестартирам приложението. Искам само едно тост съобщение (първото) всеки път, когато рестартирам приложението си. Как мога да направя това?