我想創建一些條件以在X時間後將用戶踢出活動。TimerTask條件後的Android開關視圖
我得到的總體思路:
- 店當前的時間以毫秒爲單位,從日曆對象以毫秒爲單位
- 確定我要多久用戶在活動
- 添加如何長時間+存儲當前時間以確定什麼日曆時間以毫秒爲單位開始關閉該活動
- 比較發起時間與當前時間(以毫秒爲單位)
最後一步,我發現最好的「時間收聽」我能找到的TimerTask的,因爲這樣實現:
protected void onPostExecute(Boolean success){
kickout.schedule(new KickoutTask(), 5000);
}
class KickoutTask extends TimerTask {
public void run() {
Looper.prepare();
replaceRootView(getLocalActivityManager().startActivity("myPreviousActivity", new
Intent(this, myPreviousActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView());
Looper.loop();
}
}
這是一個的AsyncTask,計數的最後一部分,「一次聽」實際工作,但是當涉及到更換視圖中run()
方法,應用程序與
"Only the original thread that created a view hierarchy can touch its views."
崩潰我理解這個概念,但我不明白是怎麼回事時的分辨率,以獲得這一活動的計數在schedule
功能。此外,我需要「替換」視圖,而不是僅僅使用「finish()」來執行此活動,因爲需要進行一些更新。
我想用另一種簡單的AsyncTask,但schedule
功能需要一個TimerTask
洞察讚賞
你能否闡述一下我怎麼會用處理程序?我也遇到了run()方法中調用的崩潰。 CountDownTimer看起來很有趣。我將爲onPause和onResume實現條件,CountDownTimer是否協助完成此操作,併成爲Android函數? – CQM
我編輯了處理程序的答案,是的,你可以使用onResume()和onPause()中的CountDownTimer。 –