Android 使活动等待特定的时间段
在我的应用程序活动中有以下代码片段 如果用户是第一次登录activity,那么唯一会发生的事情就是将布尔变量Android 使活动等待特定的时间段,android,android-activity,Android,Android Activity,在我的应用程序活动中有以下代码片段 如果用户是第一次登录activity,那么唯一会发生的事情就是将布尔变量shouldlsleep更改为true 此后,每隔60秒将执行包含生成通知的else部分 但主要的问题是,如果我执行这段代码,活动永远不会显示,因为它一直在else部分循环,因此继续休眠 我想要的是剩下的应用程序应该正常运行,同时每隔60秒执行一次else这个方法的一部分。我想这与AsyncTask有关,但我不太清楚 你知道怎么做吗?提前感谢你的帮助 boolean shouldSleep
shouldlsleep
更改为true
此后,每隔60秒将执行包含生成通知的else
部分
但主要的问题是,如果我执行这段代码,活动永远不会显示,因为它一直在else部分循环,因此继续休眠
我想要的是剩下的应用程序应该正常运行,同时每隔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();
}
也许您可以使用计时器对象:
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);
只需使用一个按钮。您可以每隔60秒运行一次任务,而不是线程方法:
new Timer().schedule(task, delay, period);
如果period=60*1000我应该将我的整个方法放在代码片段的run()中吗?当然不用Thread.sleep(60000)代码>。您应该将工作代码放入run方法中。如果我理解正确,您必须在TimerTask->run()中输入“//做一些任务”。Runnable->run()方法应该执行UI内容,比如在标签中设置文本。