我在接收器中有一个通知,它会触发罚款,但它会重新启动活动(从而清除edittexts并重置切换按钮)我如何设置它以便当它点击它时恢复活动而不是清除并重置一切?我目前的代码无效。
当前代码
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
Intent intenti= new Intent(context, Locator.class);
intenti.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
intenti, 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.xxxxxxnotifyicon)
.setContentTitle("xxxxxxx Link")
.setContentText("Auto Check In Complete at " + currentDateTimeString);
mBuilder.setContentIntent(contentIntent);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
答案 0 :(得分:0)
尝试替换
intenti.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
使用:
intenti.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
FLAG_ACTIVITY_REORDER_TO_FRONT应使用现有的活动实例,而不是创建新实例。
但是请注意,即使上述内容对你有用,它仍然存在风险(例如,如果你这样做会破坏它) 活动调用finish())。首发解决方案应该包括保存和解决方案。将活动的状态转换为共享首选项并在启动时加载它。阅读更多here。