【发布时间】:2014-11-04 12:24:05
【问题描述】:
在片段上创建了一个 CountDownTimer。如果 CountDownTimer 正在运行,用户可以在应用程序内部导航,也可以在应用程序外部进行导航。每当用户超出 CountDownTimer 片段时,顶部应该有一个通知。如果用户点击通知,他应该被引导到 CountDownTimer 片段并且计时器应该显示正确的倒计时。下面的代码打开了创建 CountDownTimer 的活动。但它会启动该 Activity 的新实例。有什么方法可以获取同一活动的旧实例,以便我可以从相同的先前状态恢复活动?
{
Notification.Builder noti = new Notification.Builder(getActivity());
noti.setContentTitle("kick counter").setSmallIcon(R.drawable.mom_ic_launcher).setAutoCancel(true);
Intent notificationIntent = new Intent(getActivity(), KickCounterActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
PendingIntent contentIntent = PendingIntent.getActivity(getActivity(), 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
noti.setContentIntent(contentIntent);
NotificationManager notifier = (NotificationManager)getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
notifier.notify(1, noti.build());
}
【问题讨论】:
-
@NaveenTamrakar 链接文章中的代码不会阻止创建活动的新实例,这正是 OP 想要的。
-
不要将标志
Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT添加到Intent。此标志不会改变任何行为。如果在特定情况下将 Activity 置于最前面,则由 Android 设置。
标签: java android android-intent android-activity android-fragments