2013-03-30 94 views
0

我有一個可點擊的通知,點擊時打開我的應用程序。不過,舊活動並未被刪除,所以,當我關閉應用程序時,以前有相同的活動......希望你能理解。按下通知時重新創建活動 - 如何?

那麼,我該如何刪除舊的活動?以下代碼位於服務範圍內。我需要摧毀主要活動。

void sendNotif() { 
     Intent in = new Intent(this, MainActivity.class); 
     PendingIntent pin = PendingIntent.getActivity(this, 0, in, 0); 
     Notification notif = new Notification.Builder(this) 
     .setContentTitle("App launched") 
     .setContentText("Press to open app") 
     .setSmallIcon(R.drawable.ic_launcher) 
     .setContentIntent(pin) 
     .build();    
     notif.flags |= Notification.FLAG_NO_CLEAR; 
     nm.notify(1, notif); 
} 

回答

-1
onPause() 
{ 
    MainActivity.this.finish(); 
} 
+0

請注意,如果您這樣做,只要您從中啓動新的活動(或切換到主頁/執行許多其他調用onPause的操作),您的活動也將被銷燬。 – kape123

+0

這是不正確的做法。有很多情況下,onPause會被調用並導致查殺活動 –

0

你爲什麼不只是添加一個標誌,你的意圖,當你創建你的PendingIntent這樣的:

Intent in = new Intent(this, getClass()).addFlags(Intent.FLAG_CANCEL_CURRENT)); 
PendingIntent pin = PendingIntent.getActivity(this, 0, in, 0); 
+0

找不到FLAG_CANCEL_CURRENT。 – Groosha

+0

Intent.FLAG_CANCEL_CURRENT,參考在這裏:http://developer.android.com/reference/android/app/PendingIntent.html – Booger

+0

是的,我知道,但Eclipse提供了一個錯誤,並沒有找到這個標誌 – Groosha

0

嘗試增加這些標誌,以你的意圖。

in.setFlags(FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_NEW_TASK); 

查看this的解釋。

+0

試過了,但它不起作用。 – Groosha

相關問題