如何通过 finish 方法完成 activity 的两个实例

How to finish two instances of activity by finish method

我通过从服务器获取 gcm 消息从服务开始 activity。如果我收到消息两次,那么 activity 会启动两次,如果我单击后退按钮并调用 finish() 方法,那么 activity 就会关闭。然后再次单击后退按钮没有 activity 发生。

Intent notificationIntent = new Intent(context,
                NotificationAcceptBookingActivity.class);
            notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            notificationIntent.putExtra("bookingId", booking.getBookingId());
            getApplication().startActivity(notificationIntent);ss

不要尝试一次又一次地创建 activity 的新实例。在启动 activity 之前,如果存在就关闭它。

你不应该同时拥有超过一个 activity 活着的实例。但是,如果您仍然想要它,也许清除 activity 堆栈可以帮助您。当开始最后一个 activity 时,使用

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

清除之前的 activity 堆栈,这将杀死 activity 的 2 个(或无论多少个)实例。