从我称之为
startActivityForResult(new Intent(this, ActivityB.class), Constant.something);
我的应用程序与活动 B一起位于前台,我的设备会收到火力基地的通知。onMessageReceived 被调用
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification() != null) {
openNewActivity(remoteMessage.getNotification().getBody());
}
}
private void openNewActivity(String messageBody) {
Intent resultIntent = new Intent(this, ActivityC.class);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle bundle = new Bundle();
bundle.putString(NotificationViewActivity.MESSAGE_EXTRA, messageBody);
resultIntent.putExtras(bundle);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 , resultIntent,
PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle("TESTTTTT")
.setContentText(messageBody)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager ) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1000, builder.build());
}
当我的应用处于前台时点击 Firebase 的通知时,会显示活动 C。但是,当我在设备上按后退按钮时,它会返回到主活动,而不是返回ActivtyB。因此,该应用程序调用主活动的onCreate,似乎重新启动了我的应用程序。有什么办法可以防止它,我希望当按下后退按钮时,应用程序返回MainActivty(希望它调用 onStart-> onResume 而不是onCreate->onStart->onResumeofMainActivity)
但是,当我使用简单的活动创建新项目时。它像我想要的那样发生,但在我的项目中我不对。对不起我的语言
抱歉,上面的代码是正确的。我的队友在活动C中的onBackPress上输入了错误的代码。该代码调用 MainActivity 并设置意图的标志是 android.intent.action.MAIN 和 android.intent.category.LAUNCHER。它使应用程序运行错误,就像我上面描述的那样