我的应用活动中有以下代码段。
如果用户第一次登陆活动,那么唯一会发生的事情就是将布尔变量shouldSleep
更改为true
。
此后,else
部分将执行,每60秒生成一次notification
。
但主要的问题是,如果我执行此代码,活动 NEVER 会显示,因为它会在其他部分继续循环,因此会继续睡觉。
我想要的是剩下的应用程序应该每60秒运行一次,这个方法的else
部分应该被执行。
我想这与AsyncTask
有关但是我对此并不太了解。
知道怎么做吗?在此先感谢您的帮助。
boolean shouldSleep=false;
private void ShowNotification()
{
//DO SOME TASK
if (shouldSleep)
{
Thread.sleep(60000);
//DO SOME TASK
}
else
{
shouldSleep = true;
}
/** Calling the method recursively so that it always runs. */
ShowNotification();
}
答案 0 :(得分:1)
也许你可以使用Timer对象:
new Timer().schedule(new TimerTask() {
@Override
public void run() {
//This code is run all 60seconds
myBooleanVar = true;
//If you want to operate UI modifications, you must run ui stuff on UiThread.
Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Activity.this.changeUiStuff();
}
});
}
}, 60000);
答案 1 :(得分:0)