2013-02-18 41 views

回答

1

沒有看到你至今嘗試一下,我要帶刺的這一個。

我不太明白爲什麼不管你的應用中有多少活動,你不能聲明/使用Intent。如果您需要再次觸發你唯一的活動,一個通知已被點擊後,並需要再次撥打該活動onCreate()setContentView(R.layout.some_layout_xml);,爲什麼不申報意向爲您的通知是這樣的:

Intent intent = new Intent(getApplicationContext(), YOUR_ACTIVITY.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
PendingIntent pendingIntent = PendingIntent.getActivity(YOUR_ACTIVITY.this, 0, intent, 0); 

這樣,點擊你的通知應該做你想做的事情。

同樣,這可能會或可能不會爲你考慮,你還沒有發佈任何代碼在所有的工作。

編輯:基於由OP的評論,我認爲解決方案可能:

請參閱如何與一個Intent發送數據的通知此鏈接:How to send parameters from a notification-click to an activity?

基本上,因爲Notification已被觸發,我假設用戶已經登錄。我們跳過登錄一部分,當他們回來的應用程序點擊Notification後,送一些額外的與Intent一起。然後,當Activity開始時,檢查該值並使用if...else語句,決定應顯示哪個佈局。

同樣,我不能強調這一點,你應該總是告訴你到目前爲止做了什麼。這確實有助於找到解決方案。您的實際需求與您所需要完成的工作無關。

+0

當我點擊通知剛開始我的應用程序的新實例。應用程序基於LoginActivity,因此每次我從通知中打開應用程序時都無法打開登錄表單。 – Disa 2013-02-18 13:15:12

+0

@Disa:點擊通知時你想運行什麼任務?在你的問題中再澄清一點真的會有幫助。 – 2013-02-18 13:16:24

+0

應用程序基於LoginActivity。當我啓動應用程序時,會出現登錄表單。應該會出現成功登錄主內容之後。當有人想回家幾分鐘時,點擊通知應該顯示主要內容而不會重新登錄。 – Disa 2013-02-18 13:18:23

1

您可以使用意向,回到應用程序,例如像這樣:

final Intent intent = new Intent(context, YourActivity.class); 
final PendingIntent pendingIntent = PendingIntent.getActivity(
       context, 0, intent, 0); 
final Notification notification = new Notification(
       R.drawable.logo, tickerText, System.currentTimeMillis()); 
notification.setLatestEventInfo(context, title, text, pendingIntent); 
notificationManager.notify(NOTIFICATION_ID, notification); 
+0

當我點擊通知剛開始我的應用程序的新實例。 – Disa 2013-02-18 13:13:39