2

當我的通知關閉時,我想恢復放入後臺的活動,而不是開始新活動。我已經看到一些關於使用FLAGS的答案,但我不知道如何實現它如何通過單擊通知恢復以前的活動

contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | INTENT.FLAG_ACTIVITY_SINGLE_TOP); 

我在哪裏可以把這個放在我的代碼中?我試過了,但沒有奏效。請幫忙!

 ns = Context.NOTIFICATION_SERVICE; 
     mNotificationManager = (NotificationManager) getSystemService(ns); 
     icon = R.drawable.icon; 
     tickerText = "Short Msg"; 
     when = System.currentTimeMillis(); 
     notification = new Notification(icon, tickerText, when); 
     context = getApplicationContext(); 
     contentTitle = "MyApp"; 
     contentText = "Reopen App"; 
     notification.defaults |= Notification.DEFAULT_SOUND; 
     notification.defaults |= Notification.DEFAULT_VIBRATE; 
     notificationIntent = new Intent(this, StartTimer.class); 
     contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
     notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

回答

3

想通了,設置的活動,以SingleTop或SingleInstance在Android清單,然後而不是創建一個新的活動,它只是重新打開一個仍然活躍。

1

請注意,標記爲正確的答案不完全正確,因爲「singleTop」仍可能在特定條件下創建活動的多個實例。

,真正的保證下,創建您在任何條件下活動的唯一實例的啓動模式是「singleTask」「singleInstance」

這兩個選項爲您的活動成爲任務的根源創建了一個且唯一的任務,不同之處在於「singleInstance」不允許其他活動放在您的頂部,而「singleTask」卻可以。

來源: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode