Android 使活动等待特定的时间段

Android 使活动等待特定的时间段,android,android-activity,Android,Android Activity,在我的应用程序活动中有以下代码片段 如果用户是第一次登录activity,那么唯一会发生的事情就是将布尔变量shouldlsleep更改为true 此后,每隔60秒将执行包含生成通知的else部分 但主要的问题是,如果我执行这段代码,活动永远不会显示,因为它一直在else部分循环,因此继续休眠 我想要的是剩下的应用程序应该正常运行,同时每隔60秒执行一次else这个方法的一部分。我想这与AsyncTask有关,但我不太清楚 你知道怎么做吗?提前感谢你的帮助 boolean shouldSleep

在我的应用程序活动中有以下代码片段

如果用户是第一次登录activity,那么唯一会发生的事情就是将布尔变量
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内容,比如在标签中设置文本。