2013-07-23 122 views
2

我的應用程序中有一項活動,可以通過通知打開。但是活動的內容取決於通知的種類。例如: 如果我收到「通知」,則應用程序啓動該活動,並且此活動顯示「已收到」。然後,如果我收到'b通知',應用程序會再次啓動活動並顯示'已收到'。 問題是,當活動已經啓動一次,當'b通知'再次重新啓動時,活動仍顯示'已收到'。根據收到的意圖,我如何強制重新創建活動?活動的重新啓動Android

我試過intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);但那不起作用。

謝謝!

編輯:經過一番研究,我發現pendingIndent是問題所在。看起來作爲PendingIntent.getActivity(ctx, 0, intent, 0)中的參數傳遞的意圖未被更新。我剛剛加入

intent.setAction(Long.toString(System.currentTimeMillis())); 

和一切工作像一個魅力。

+0

難道你沒有得到'onNewIntent()'你可以使用的任何東西嗎?你有多少個'Activity'實例? – gunar

+0

不知道有多少,這取決於收到的通知。 –

+0

下面的回答可以幫助你: http://stackoverflow.com/a/3974828/1534762 http://stackoverflow.com/a/3419987/1534762 – Chandru

回答

0

開始活動前,完成'A'或'B'通知處理程序中的任何現有活動。

0

當您想要重新啓動應用程序然後重寫onDestroy()並執行以下操作時調用finish()。

@override 
public void onDestroy() 
{ 
    startActivity(new Intent(this,ThisDyingAcitivity.class)); 
}