後停止活動(S)我在我的代碼如下流程:機器人:開始服務
Activity1 : startActivity(Activity2) --->
Activity2: startActivity(Activity3) --->
Activity3: startService(MyService) --->
MyService: startActivity(Activity4)
每個活動以上示出了單個圖,並且表示在4個步驟設置的步驟。最後的活動 - Activity 4
- 一些設置工作裏面MyService
,基本上告訴用戶完成之後開始,
"The service has started, you can close the application by pressing Back or Home button"
當用戶按下後退或家庭,我要摧毀Activities 1-4
,只有具備MyService
運行。此外,停止應用程序如上,當用戶通過菜單導航迴應用程序並啓動它後,我會檢查是否MyService
已在運行。如果它已在運行,我不希望顯示Activities 1-3
,我想告訴另一Control Panel View
(另一項活動),它說,
"Dude, the service is already running, do you want to Stop or Restart it?"
這種觀點將有停止和重新啓動按鈕,做適當的任務。
我的問題:
如何停止活動1-4從內活動4時返回或主頁被按下時,安全?我的想法是爲
static stopActivity()
方法添加到每個活動,並呼籲從onBackPressed()
Activity[1-3].stopActivity()
或onPause()
Activity4。然後,每個stopActivity()
裏面,我會打電話給finish()
,從而結束了各活動。但以這種方式安全有效嗎?我上面已經說明了流動,是做事的最佳方式,或者是有一個更清潔的方式?我有
BroadcastReceivers
在這些活動中註冊,所以我需要執行清理退出的每個活動,不泄露接收器,或者更糟,崩潰應用程序或影響用戶的手機由於不潔的退出策略。
感謝您的建議。
有幾種可能的實現方法。爲了給你更好的答案,請指出用戶是否可以使用「BACK」鍵從「Activity3」 - >「Activity2」 - >「Activity1」。另外,如果用戶處於「Activity3」,「Activity2」或「Activity1」並按HOME鍵,會發生什麼情況。當他回到應用程序時,他應該從頭開始('Activity1')嗎?或者他是否應該回到他離開的活動。 –