[英]Android Service for uploading data for x minute in every x minute
我有2個服務在后台運行。 一個將不斷收集位置數據,另一個將數據發送到服務器,警報管理器將每10分鍾啟動一次。
在將數據發送到服務器的服務中,我有一個方法將在onStartCommand()
發布數據(數據庫中的50行onStartCommand()
。 我想讓服務連續執行post data方法長達5分鍾。
我嘗試使用while循環連續執行該方法,但是它將顯示消息應用程序未響應。 我認為while循環正在Main線程中的服務不間斷地執行該方法,從而導致活動崩潰。
有什么更好的方法可以在服務中連續執行方法,同時使主線程上的活動崩潰?
我有2個服務在后台運行。 一個將不斷收集位置數據,另一個將數據發送到服務器,警報管理器將每10分鍾啟動一次。
這對於電池壽命將是可怕的,因為您將需要通過WakeLock
保持CPU持續通電以“不斷地收集位置數據”。
在將數據發送到服務器的服務中,我有一個方法將在onStartCommand()中發布數據(數據庫中的50行)。 我想讓服務連續執行post data方法長達5分鍾。
這對於電池壽命會變得更糟,因為現在您將使WiFi或移動無線電保持高功率狀態持續長達5分鍾。
有什么更好的方法可以在服務中連續執行方法,同時使主線程上的活動崩潰?
分叉一個后台線程。
您需要在另一個線程上進行工作。
該服務有助於在UI外部控制生命周期,但是它仍位於MainThread上。
之所以稱為“后台服務”,是因為它具有與您的活動生命周期不同的后台生命周期。
最簡單的示例是從后台Service
生成ASyncTask
或更好地使用IntentService
。 IntentService
將自動控制您對線程的使用。
這是Intent Service線程工作的正式文檔:
http://developer.android.com/training/run-background-service/send-request.html
以下是我討論過的內容的API文檔: http: //developer.android.com/reference/android/os/AsyncTask.html http://developer.android.com/reference/android/app/IntentService.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.