2013-07-03 74 views
0

我工作的一個應用程序有三個背景:從服務彈出對話框也彈出主要活動

所有在MainActivity確實是啓動和停止MonitorService,並顯示一些用戶指令。

MonitorService被註冊爲接收振鈴音量的變化,如果它檢測到音量變化,它會彈出一個ConfirmActivity。

ConfirmActivity彈出一個DialogFragment中的AlertDialog,詢問卷更改是否是有意的,如果用戶沒有確認更改,則重置卷。

我看到的問題是,如果MainActivity處於停止狀態,當ConfirmActivity啓動時,MainActivity也會重新啓動並恢復。當對話被解散時,MainActivity保持可見。我覺得這種意外和令人不安。如果MainActivity已被銷燬,則ConfirmActivity按預期工作。

任何人都可以闡明爲什麼啓動ConfirmActivity也會重新啓動MainActivity?

回答

0

Android會跟蹤您的應用的哪些活動按照什麼順序使用,當應用到達前臺時,它會帶來所有這些活動,所以如果您打開了一個MainActivity,以便用戶導航離開,那麼你創建了一個ConfirmActivity,MainActivity將會在ConfirmActivity後面。

要解決這個問題,請查看您在啓動活動時可以在Intent中指定的標誌。有幾個影響如何處理活動堆棧的方式;我想你可能想用FLAG_ACTIVITY_CLEAR_TASK

+0

謝謝!那就是訣竅。 –