我正在開發Android的倒數計時器應用程序。該應用程序可以顯示剩餘時間。即使電話被鎖定或主要活動被破壞,它也必須工作。我想知道哪個以下應該使用,更重要的是,爲什麼我應該使用它(和爲什麼不是其他)。服務vs可運行vs AsyncTask
- 服務
- 可運行:靜態參照Runnable對象。該引用在Activity類中聲明。
- 的AsyncTask
我正在開發Android的倒數計時器應用程序。該應用程序可以顯示剩餘時間。即使電話被鎖定或主要活動被破壞,它也必須工作。我想知道哪個以下應該使用,更重要的是,爲什麼我應該使用它(和爲什麼不是其他)。服務vs可運行vs AsyncTask
'處理程序mHandler'必須是靜態的?恐怕當一個活動被破壞時,我不能訪問處理程序。 – wannik
在我看來,如果你的應用需要能夠在後臺通知用戶,我會用一個服務,所以如果你的應用程序已經被用戶置於後臺,當定時器準備就緒時,仍然可以通知用戶,然後可以使用基於位置的事件時間等。
另一種選擇呢?我想知道選擇應用程序中的每個選項的專業和建議。 – wannik
AsyncTask只是一個從UI線程啓動的新線程,它主要是爲了檢索數據並顯示它,而不是等待這麼久,但這將在應用程序啓動時工作。一旦關閉,線程將退出。 –
Runnable只是一個代碼,意味着要在後臺線程上運行,所以同樣的原則,如果你的應用程序放在後臺將停止運行 –
服務在這種情況下最好,它會像你一樣要求,甚至在米的時候繼續跑步ain活動被破壞,並且不太可能被Android操作系統殺死。
AsyncTask和runnable都依賴於你的應用程序仍然處於活動狀態,而一個服務獨立運行,當它打開或重新啓動以顯示從服務傳遞的信息時,或者服務可以在它自己的,顯示通知等等。
你能詳細說明這個計時器應用程序應該做什麼嗎?它是否像秒錶?一個鬧鐘? – kaspermoerch
您的計時器應用程序正在執行什麼操作? –
http://stackoverflow.com/questions/4909634/service-handler-timer-runnable-which-to-use-and-how –