2010-02-25 52 views
3

我有一個TabActivity,其中包含4個選項卡。我有一個正在運行的服務 - 這個服務即使在我的TabActivity被銷燬後也能運行。從通知發送的PendingIntent中選擇TabActivity中的特定選項卡

當服務收到事件時,我創建了一個通知。 TabActivity目前可能會被銷燬,或者只是在後臺運行。

如何創建一個Notification/PendingIntent,它將啓動TabActivity(如果它當前沒有運行),或者如果它已經到達前端,並且根據事件集中特定的選項卡?

我想過從TabActivity中以編程方式註冊廣播接收器,並且使用此功能可以將選項卡集中,但是如何使TabActivity成爲活動的活動?

回答

1

我想我找到了答案在documentation

這就是所謂的,在他們的包設置launchMode到singleTop,或者如果一個客戶端調用startActivity(Intent)時使用的FLAG_ACTIVITY_SINGLE_TOP旗活動。無論哪種情況,當活動在活動堆棧頂部重新啓動時,而不是活動正在啓動的新實例時,onNewIntent()將在現有實例上使用用於重新啓動它的Intent調用「

這解決了我試圖找出問題,該意圖沒有被通過,當應用程序已經運行,因爲的onCreate()是不叫的onCreate。

+0

如果包含選項卡活動已打開,即選項卡活動處於前臺而不是後臺,並且在點擊狀態通知後,是否可以打開特定選項卡?選項卡活動只應更改當前設置的選項卡? – 2013-01-21 04:28:58

+0

@Khushbu Shah,添加「android:launchMode =」singleTask「可以解決您的問題,如果特定標籤已經在前臺。 – 2016-11-30 17:41:34

2

我希望你已經檢查「如何創建的通知」和「如何從開始通知活動」的文檔 - 如果不是,只是check it) 因此,作爲從通知激活特定選項卡,我建議你用「額外「在你的PendingIntent中。例如,只需將特定選項卡的數字放在extras中,並且在調用Activity中的'onCreate()'時,只需從Intent中獲取它(在Activity中調用getIntent()),然後setCurrentTab(number);在tabHost中。

對不起,我的英語)希望這會有所幫助。

+1

這工作正常一個TabAtivity還沒有運行,如果它正在運行並且在後臺運行,Intent將永遠不會傳遞給onCreate()。 它似乎重新調整了TabActivity的焦點,但Intent永遠不會被調用在任何地方都可以使用。 – synic 2010-02-25 14:21:02

相關問題