2011-03-11 60 views
0

在我的應用程序中,我需要每隔3分鐘從服務器端獲取數據,以便在應用程序顯示特定活動時啓動新線程,然後此線程只需提取數據,然後再進入睡眠等等。 ..但我發現這對於CPU使用率並不是那麼高效,所以我的問題是:Android:定時任務和CPU效率

從CPU使用情況來看,從服務器執行後臺週期性數據拉取的最佳解決方案是什麼? 它應該是AlarmManager,Thread還是其他技術。

回答

1

如果數據拉完成,只有當活動處於活躍狀態時,你應該使用處理機制,從UI線程調度週期性任務,這裏建議: http://developer.android.com/resources/articles/timed-ui-updates.html 這一切都基於解決此功能:

mHandler.postDelayed(mUpdateTimeTask, 100); 

其中mHandler是你的處理程序,並mUpdateTimeTask是一個Runnable包含操作的給定時間段之後執行(100毫秒,在該示例中)。 請注意,mUpdateTimeTask在UI線程中執行,因此您必須初始化並啓動您自己的線程。爲了簡化這個任務,Android提供了AsyncTask:http://developer.android.com/resources/articles/painless-threading.html

+0

yes,我讀過這篇文章並且有AsyncTask&Handler的經驗,它似乎是給定問題的最佳解決方案,無論如何就移動開發而言我認爲它定期創建和配置新的線程,然後保持一個長久的生命 – endryha 2011-03-11 12:37:23