我正在編寫一個應用程序,需要每5秒做一些工作,如果這些計算超過閾值,應該啓動一個意圖加載新的活動(或者如果活動可能由流程本身發起)。使用AsyncTask和服務檢查閾值每5秒運行一次報警
到目前爲止,我正在採用Wrox的專業Android 2應用程序開發手冊中的方法,該手冊規定刷新數據使用AlarmManager和AsyncTask。 http://www.wrox.com/WileyCDA/WroxTitle/Professional-Android-2-Application-Development.productCd-0470565527,descCd-DOWNLOAD.html - >示例項目 - >第九章地震4
這是我到目前爲止有:
Activity.onCreate從推出服務
onCreate方法啓動一個服務集報警PendingIntent參數(尚未啓動它)。
啓動的服務onStartCommand創建報警並創建的AsyncTask(含執行)
AsynchTask.doInBackground做了一些計算,如果閾值已經過去了,它廣播一個新的意圖,並試圖阻止警報,如果閾值未通過,則不做任何事情。
該服務從AsyncTask的onPostExecute停止。
一個BroadcastReceiver的方法的onReceive處理來自2的PendingIntent)並啓動這樣的服務:
意圖startIntent =新意圖(上下文,MyService.class);
context.startService(startIntent);
眼下報警不停止,我不太確定這是處理這種需求的最佳架構,你可以分享任何經驗? 我知道其他選項,如IntentService,處理程序的使用情況,定時器,但這也是一種乾淨的方式,但是......它的性能高嗎? 最好的問候。吉列爾莫。
我知道我可以使用Thread類(來自Android)。但我不知道什麼是最適合我需要的東西。爲什麼使用線程比使用AsyncTask更好? – polonskyg 2011-04-25 21:19:59
不知道這是否有幫助,但本文比較了Android中的各種任務執行機制:http://techtej.blogspot.com/2011/03/android-thread-constructspart-4.html – advantej 2011-04-25 21:28:38