我有一個活動將一些細節發送到我的數據庫,但是當我點擊後退按鈕時它會停止。 是否有可能讓它在後臺運行?我聽說使用服務可以解決這個問題,但是因爲我所有的類都是活動,所以我想知道它是否可行。 用onStop方法的某些代碼無法完成這項工作嗎?在後臺運行一個活動
回答
你提到所有的類都寫成活動,我假設你的應用程序邏輯嵌入了你的用戶界面邏輯。這通常不是一個好的做法 - 您應該嘗試將特定於應用程序的代碼遷移到單獨的類。通過在用戶界面之外使用此功能,您的應用程序將以多種方式受益。
要回答你的問題,可以讓你的應用程序通過子類Service
在後臺執行功能。看一看here是一個很好的解釋。
您應該使用意圖編寫活動與之通信的服務。因此它應該將數據發送到服務以便發送到數據庫,然後服務可以通知活動。當活動監聽來自服務的事件時,您正在實現Observer模式(Java和Android中的監聽器以及許多其他事件處理系統)。
您也可以輪詢服務,但這不是獲取狀態更新的首選模式。
Heey,
創建一個擴展Service的新類。 添加必要的覆蓋。
@Override
public IBinder onBind(Intent intent)
{
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//this service will run until we stop it
// This will execute when the service starts
return START_STICKY; //makes it sticky to keep it on until its destroyd
}
@Override
public void onDestroy()
{
super.onDestroy();
// when the service is destroyd
}
可以啓動與服務:
stopService(new Intent(getBaseContext(), ServiceClassName.class));
您可以停止服務:
stopService(new Intent(getBaseContext(), ServiceClassName.class));
希望這有助於:)
你將不得不重寫onBackPressed方法來做你想做的事情。如果你想「隱藏」活動(所以用戶看到它「關閉」),你可以調用moveTaskToBack方法。
「moveTaskToBack」後應用程序會繼續運行嗎? –
您應該測試用於db寫入的「背景」代碼。至少它會隱藏它之前保存狀態。 – DNax
我應該使用super.onBackPressed()嗎?我認爲沒有,因爲這是殺死我的應用程序,我猜對的方法? –
- 1. 在後臺運行活動
- 2. 在後臺運行活動
- 3. 在後臺按下後在後臺運行的活動
- 4. 如何在後臺運行活動?
- 5. 製作活動在後臺運行
- 6. 關閉在後臺運行的活動
- 7. 在後臺運行android活動
- 8. 顯示在後臺運行的活動
- 9. 如何讓活動在後臺運行?
- 10. 保持活動在後臺運行
- 11. 保持活動在後臺運行
- 12. 運行一個後臺進程,應該在從一個活動移動到另一個時繼續運行
- 13. Android:從後臺運行活動
- 14. 如何在主要活動在後臺運行時啓動活動?
- 15. Android BroadcastReceiver啓動時 - 活動在後臺時保持運行
- 16. 在後臺運行一個gui程序
- 17. 一個程序,在後臺運行(JAVA)
- 18. 在後臺運行一個php腳本
- 19. 在後臺運行一個函數
- 20. 在onReceive調用課堂活動以在後臺運行
- 21. 在google appengine後臺運行只有一個後臺線程
- 22. 如何使活動始終在後臺運行
- 23. 隱藏Android語音識別活動在後臺運行?
- 24. 在Android中的後臺計時器上運行活動
- 25. android:在後臺運行服務和活動之間的通信
- 26. 如何在Android中的後臺運行活動
- 27. Android - 正在運行後臺任務並處理活動重啓
- 28. 發送數據到在後臺運行的活動
- 29. 運行在後臺
- 30. 在後臺運行
不,onStop應該很快,所以你不能在那裏繼續處理。如果你有長時間運行的進程,你應該把它們放在後臺,但是你也應該只對用戶交互進程使用活動。遷移到「服務」並不困難,值得付出努力。 – 323go
您正在尋找服務。看看這個教程http://www.vogella.com/articles/AndroidServices/article.html –
讓我們假設我的應用程序是某種計時器..我想在後臺運行它,但當用戶重新打開它應該看到它是一種活動......我該如何分解它?服務是什麼以及活動是什麼? –