Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在创建同一活动的过程中取消当前活动?_Java_Android - Fatal编程技术网

Java 如何在创建同一活动的过程中取消当前活动?

Java 如何在创建同一活动的过程中取消当前活动?,java,android,Java,Android,有以下代码: Intent i = new Intent(this, MessagesActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_CANCEL_CURRENT); NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFIC

有以下代码:

    Intent i = new Intent(this, MessagesActivity.class);
    PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_CANCEL_CURRENT);
    NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

    NotificationCompat.Builder nb = new NotificationCompat.Builder(this);
    nb.setContentText("There is a new message for you").setContentTitle("New message").setContentIntent(pi);
    nb.setWhen(System.currentTimeMillis()).setDefaults(Notification.DEFAULT_ALL);
    nb.setTicker("SomeText").setSmallIcon(android.R.drawable.ic_dialog_alert);
    manager.notify(100, nb.getNotification());
当用户通过使用此代码创建的通知单击时,应用程序应打开MessagesActivity活动。它起作用了。但是,如果用户已经在MessagesActivity中,则此代码将执行MessagesActivity的新副本。我怎样才能修好它?提前谢谢

尝试使用:

为您的意图标记活动历史标记

Intent i = new Intent(this, MessagesActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

它不会在历史堆栈中生成活动。因此将不会有多个实例。

您可以为清单文件中的活动尝试此操作吗

添加
launchMode=“singleTop”
作为活动的属性


抱歉,我需要关闭当前MessagesActivity并执行新副本。抱歉弄错了请尝试将其设置为“标准”,它应该是默认值。(系统总是在目标任务中创建活动的新实例,并将意图路由到目标任务。)您能否澄清,当用户通过通知或其他方式启动现有活动时,是否要关闭该活动?当用户已在运行该活动时,是否要关闭该活动。单击“按通知”时,我希望关闭当前活动(此活动是否为MessagesActivity)并创建MessagesActivity的新副本。如果当前活动是另一个活动,我希望在不关闭任何内容的情况下执行MessagesActivity的副本。FLAG_activity_REORDER_to_FRONT,FLAG_activity_SINGLE_TOP这是可用于意图的其他标志。您可以查看此意图