Android 推送通知无法重新创建活动



在我的应用程序中,点击推送通知时,我无法使用新信息(捆绑数据)重新创建活动。以下是我的推送通知流程的步骤。

第 1 步:我从单击推送通知时打开活动 B,并在活动 B 中显示信息。

第 2 步:点击主页按钮或转到其他活动,活动 B 将进入后台(暂停)状态。

第 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

您无法更改 Android 活动生命周期。 你应该预料到同样的事情每次都会发生。 onCreate 只为每个活动对象的实例调用一次。 这是无法改变的。 您可以阅读有关活动生命周期的信息以获取更多信息。

如果要关闭现有活动堆栈而不考虑其中的内容并创建新的根,正确的标志集如下:

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

最新更新