在这里,我要每隔5秒钟定期运行一次asynctask。以下是我的代码,
//以5秒的间隔调用asynctask
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秒的间隔调用asynctask
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秒就有一次toast消息。现在,当我关闭应用程序并重新启动时,有两个Toast消息(意味着我可以说,创建了第二个类实例),每次重新启动应用程序时都会创建新的Toast消息。每次重新启动应用程序时,我只想要一个Toast消息(第一个)。我怎么能这样做?