我通过从服务器获取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
答案 0 :(得分:0)
不要一次又一次地尝试创建活动的新实例。在开始活动之前,如果存在则关闭它。
答案 1 :(得分:0)
您不应该同时拥有多个活动实例。但是,如果您仍然需要它,可能清除活动堆栈可以帮助您。开始上一个活动时,请使用
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
清除以前的活动堆栈,这将杀死活动的2个(或无论多少个)实例。