Android如何创建恢复活动的通知

时间:2014-08-22 16:10:45

标签: java android

我在接收器中有一个通知,它会触发罚款,但它会重新启动活动(从而清除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());

1 个答案:

答案 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