[英]Android Service in background thread
我正在嘗試創建一個在給定時間間隔內運行的服務。 該服務的目的是更新數據庫,完成后通過Intent
通知Activity
。
當用戶選擇“刷新”時,也應該從活動中調用該服務。
我已經完成了這個,但我不能讓它在一個分離的線程中運行。
該服務在Runnable中執行更新方法:
private Runnable refresh = new Runnable() {
public void run() {
update(); //Runs updates
didUpdate(); //Sends broadcast
handler.postDelayed(this, 50000); // 50 seconds, calls itself in 50 secs
}
};
我有另一個名為ManualRefresh的runnable,它通過活動的廣播來調用。
然而,這些runnable似乎阻止了UI。
需要建議! :)
我建議使用AlarmManager編寫服務。 該服務將收到一個Intent,告訴它定期更新數據庫。
更新后,您可以通過Intent通知Activity(如您所述)。
當用戶想要手動刷新時,讓應用程序向您發送一個Intent服務。 從AlarmManager或Activity中接收Intent將執行相同的代碼。
您可能還希望在請求手動刷新后重新安排警報。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.