2016-03-05 63 views
0

在我的應用程序中,當輕按推送通知時,我無法使用新信息(綁定數據)重新創建活動。以下是我的推送通知流程的步驟。Android推送通知無法重新創建活動

步驟1: 點擊主頁按鈕,或者去一些其他的活動,以便活動B被切換到後臺(: 我從當點擊與活動B.信息顯示推送通知

第2步打開活動B OnPause)狀態。

第3步: 現在再次打開活動B,通過點擊具有新信息的推送通知,但Activity B goes to onResume instead of onCreate state

我的要求是它應該去onCreate狀態,以便我可以用新信息處理。 IActivity B如何才能進入onResume而不是onCreate狀態呢?我在通知接收者類中做了以下操作。

Intent intent = new Intent(this, ListScreenActivity.class); 
Bundle bundle = new Bundle(); 
bundle.putInt("res_id", requestCode); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.putExtra("uid", id_value); 
intent.putExtras(bundle); 
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, requestCode, intent,0); 
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()); 
Notification notification = mBuilder 
     .setSmallIcon(R.mipmap.ic_launcher) 
     .setTicker(tickerMessage) 
     .setWhen(0) 
     .setAutoCancel(true) 
     .setContentTitle(app_name) 
     .setStyle(new NotificationCompat.BigTextStyle().bigText(tickerMessage) 
     .setContentIntent(resultPendingIntent) 
     .setContentText(tickerContent).build(); 

NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.notify((int) System.currentTimeMillis(), notification); 

注: 這裏ListScreenActivity (Activity B) is not Launcher activity

回答

0

不能更改了Android活動的生命週期。你應該期望每次都能發生同樣的事情。 onCreate僅在活動對象的每個實例中調用一次。這是不能改變的。你可以閱讀關於activity lifecycle以獲得更多信息。

0

如果你想不管裏面有什麼了關閉現有活動堆棧,並創建新的根,正確的標誌集如下:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);