2010-08-04 22 views
0

假設用戶啓動了我的應用程序,然後關閉使用瀏覽器(所以我們有2套任務正在運行)。過了一段時間,我的應用程序發生了一些需要用戶注意的事情,所以它會發布通知以通知用戶。當用戶點擊我的通知時,是否有辦法將我的應用程序的任務(以及堆棧頂部的活動)從後臺移出?Android:如何將焦點放在背景上屬於不同任務的活動?

回答

1

在通知你打電話的意圖來啓動你的應用程序,如果你確保它具有以下標誌然後將它帶到前面,而不是創建另一個實例:

Intent contentIntent = new Intent(this, ABC.class); 
contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | INTENT.FLAG_ACTIVITY_SINGLE_TOP); 
1

通知通常帶有一個PendingIntent(Notification.contentIntent)。將此意圖設置爲您的應用以啓動您的應用的活動。

當前只有一個Activity處於活動狀態 - 只要您切換到另一個屏幕,系統會暫停您的活動(onPause,並且很可能是onDestroy),因此您需要使用意圖恢復您的活動並將其帶到主屏幕。

+0

當PendingIntent啓動ActivityA並且ActivityA的一個實例已經駐留在後臺某處時,是否創建了一個新的ActivityA實例,或者現有的實例是否被帶到了焦點? – zer0stimulus 2010-08-04 23:40:59

+0

默認情況下,同一個實例將獲得焦點。但是,我不確定你所依賴的是什麼(成員變量?靜態變量?)操作系統一旦進入後臺就可能已經終止了你的活動,所以如果有任何你想要堅持的持久數據,你需要先保存它。 – EboMike 2010-08-05 00:10:44

相關問題