如何通过 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 个(或无论多少个)实例。
我通过从服务器获取 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 个(或无论多少个)实例。