2011-01-07 81 views
6

我有一個具有多個活動的應用程序。其中之一,我設置了一個警報。我按HOME按鈕。當警報觸發時,會出現通知。當點擊通知時,我開始一個類似對話的活動(@android:style/Theme.Dialog)。雖然我在桌面屏幕上,但Android會打開我的最後一個活動,然後顯示我的對話式活動。我只是想顯示我的對話活動,無論用戶在哪裏。活動從在活動堆棧頂部打開的通知開始

有沒有人有什麼錯誤的想法?

Intent notificationIntent = new Intent(this, NotificationActivity.class); 
notificationIntent.putExtra(Constants.EXTRA_ALERT_MESSAGE, contentText); 
PendingIntent contentIntent = PendingIntent.getActivity(this, Constants.PENDING_INTENT_REQ_DIALOG, notificationIntent, 0); 
no.contentIntent = contentIntent; 

回答

12

你可能要設置android:taskAffinityandroid:launchMode="singleTask"在你的對話活動的清單文件。設置taskAffinity將導致Activity在具有自己的堆棧的單獨任務中啓動。 singleTask可能會或可能不完全適合您的應用程序,但您可能需要它或singleInstance,具體取決於您的使用情況。您需要閱讀文檔以確定哪一個適合您。