這是我的主要活動:如何保持的AsyncTask當用戶關閉應用程序
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
moveTaskToBack(true);
System.exit(0);
}
我想AsyncTask
繼續數據放在我的服務器在後臺在用戶關閉應用程序後。
這是我的主要活動:如何保持的AsyncTask當用戶關閉應用程序
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
moveTaskToBack(true);
System.exit(0);
}
我想AsyncTask
繼續數據放在我的服務器在後臺在用戶關閉應用程序後。
我希望AsyncTask在用戶關閉應用程序後在後臺繼續將數據放入服務器。
的AsyncTask
目的是不執行後臺任務已經超出了一個Activity
的生命週期的範圍。當從線程池中分配後臺線程時,一旦任務結束,它就會返回它。即不能使用AsyncTask
,因爲所需時間不確定。
什麼是在尋找適合的是Services在Android。
爲什麼即使使用AsyncTask如果我們有服務?
嘛,說比如你需要從一個Activity
上Button
的點擊下載圖像/歌曲或您需要執行,將需要一些時間來完成其執行的任務。從主線程(也稱爲UI線程)執行這些任務是一種糟糕的方法,並且會使您的應用程序變得遲鈍並最終導致ANR。所以這些任務是從一個單獨的線程異步處理,以保持應用程序黃油順利。
你必須檢查服務和/或IntentServices
服務是解決方案的一部分,但要注意服務前臺線程上運行。你會想從服務中運行你的AsyncTask,以確保它繼續在後臺線程上運行。
就個人而言,我會使用服務建議對有利於JobScheduler,或者如果你需要支持低於API 21設備,Evernote的的JobManager(這也有點更容易使用)。這些將幫助您在適當的時間安排後臺操作,以最大限度地減少電池使用或設備空閒時的時間。使用設備資源時成爲一個好公民很重要。
您需要熟悉服務 –
Duplicate - http://stackoverflow.com/questions/39507506/how-to-execute-background-task-when-android-app-is-closed-set-to-background和http://stackoverflow.com/questions/39507506/how-to-execute-background-task-when-android-app-is-closed-set-to-background –
讓自己適應服務 –