2016-02-11 44 views
1

我需要實現此功能,但我不確定這是否可能在Android上。通知到達時是否可以立即觸發活動?

我們已運行gcm偵聽器服務。但是讓我們說應用程序是開放的,並且通知從服務器到達。我需要自動觸發一個活動,而不必觸摸手機屏幕頂部的通知狀態欄。

換句話說,一旦通知到達,沒有任何用戶交互,如果應用程序正在運行,必須立即觸發一個活動。

我看了一下這個帖子,但這不是我真正需要的。

Intent - if activity is running, bring it to front, else start a new one (from notification)

任何線索或更多信息? thx!

回答

0

通過使用FLAG_ACTIVITY_NEW_TASK標誌,您可以在沒有其他在先活動的情況下開始活動。

Context c = getApplicationContext(); // or getContext(), or any other context you can find from the current app 
Intent i = new Intent(c, YourActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 
+0

這不是我真正想要的。我的活動已在運行。當gcm(後臺服務)創建新的通知時,我需要以某種方式通知我的運行活動,它需要更新其內容。像谷歌電子郵件。如果您打開了該應用程序,並且有新的電子郵件到達。如果不觸摸任何東西,您會看到一封新郵件。後臺服務以某種方式讓運行活動知道它需要更新其內容。不知道我是否清楚。 – gmmo

+1

這不是你在原始問題中陳述的。如果您只想讓某個活動能夠「傾聽」類似GCM的事件,則可以使用LocalBroadcastManager或事件總線在活動與廣播接收器之間進行通信。你必須自己接線。 –

+0

我會看看,謝謝你的領導。 – gmmo

相關問題