当我的通知消失时,我想恢复放入后台的活动,而不是开始新的活动。我已经看到了一些关于使用FLAGS的答案,但我不知道如何实现它
contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | INTENT.FLAG_ACTIVITY_SINGLE_TOP);
我在哪里把它放在我的代码中?我试过但它没用。请帮忙!
ns = Context.NOTIFICATION_SERVICE;
mNotificationManager = (NotificationManager) getSystemService(ns);
icon = R.drawable.icon;
tickerText = "Short Msg";
when = System.currentTimeMillis();
notification = new Notification(icon, tickerText, when);
context = getApplicationContext();
contentTitle = "MyApp";
contentText = "Reopen App";
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationIntent = new Intent(this, StartTimer.class);
contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
答案 0 :(得分:3)
想出来,在Android Manifest中将Activity设置为SingleTop或SingleInstance,然后重新打开仍然有效的活动,而不是创建新活动。
答案 1 :(得分:1)
请注意,标记为正确的答案并不完全正确,因为“singleTop”在某些条件下仍可能会创建多个您的活动实例。
在任何条件下真正保证创建活动的唯一实例的启动模式是“singleTask”和“singleInstance”。
这两个选项为您的活动创建了一个唯一的任务,即任务的根,区别在于“singleInstance”不允许在您的活动之上进行其他活动,而“singleTask”则不然。
来源: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode