如何通过finish方法完成两个活动实例

时间:2015-01-19 10:31:24

标签: android android-activity instance

我通过从服务器获取gcm消息从服务开始活动。如果我收到消息两次,则活动开始两次,如果我单击后退按钮并调用finish()方法,则上述活动将关闭。然后再次点击后退按钮不会发生任何活动。

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

2 个答案:

答案 0 :(得分:0)

不要一次又一次地尝试创建活动的新实例。在开始活动之前,如果存在则关闭它。

答案 1 :(得分:0)

您不应该同时拥有多个活动实例。但是,如果您仍然需要它,可能清除活动堆栈可以帮助您。开始上一个活动时,请使用

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

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