私のアプリケーションアクティビティに次のコードスニペットがあります。特定の時間内にアクティビティを待機させます
初めてユーザーがアクティビティに参加した場合、ブール変数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();
}
'Activity.this.setDayOrNight()が何をん;'やります? – GAMA
私はあなたのコードスニペットのrun()を使って私の全メソッドを置くべきですか?もちろん、 'Thread.sleep(60000);'を使わないでください。 – GAMA
実行メソッドに作業コードを入れる必要があります。私が正しく理解していれば、TimerTask-> run()に入れなければならないことは "//何らかのタスクを行う"ことです。 Runnable-> run()メソッドは、ラベル内のテキストを設定するなど、UIの処理を実行する必要があります。 – djleop