我遇到通知问题。这一切都很好地从通知启动正确的活动。
问题是当从通知启动新活动并且应用程序已处于后台时。然后首先加载最新的活动(在Resume()上),然后加载该预期活动。在onResume
我正在检查会话到期时间。当它过期的用户将被带到登录。在最近的活动中,我没有通知附加信息。
在打开通知并直接进入预期活动时,是否有可能跳过最新活动onResume
。
PendingIntent createContentIntent(Context appContext, NotificationData data) {
Intent notificationIntent = createNotificationIntent(appContext, data);
if (notificationIntent == null) {
notificationIntent = new Intent();
}
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Bundle extras = createBundle();
extras.putSerializable(EXTRA_NOTIFICATION_DATA, data);
notificationIntent.putExtras(extras);
return createPendingIntentActivity(appContext, notificationIntent);
}
答案 0 :(得分:0)
修改新的活动清单以包含自定义任务关联,并考虑将launchMode更改为singleTop以防止创建活动的重复:
<activity
android:name=".your_activity"
android:launchMode="singleTop"
android:taskAffinity=":task_2"/>
还要在启动意图中包含Intent.FLAG_ACTIVITY_NEW_TASK
。
答案 1 :(得分:0)
您遇到的问题是,Android会将您现有的任务带到前台,然后(显然)在从Activity
创建Activity
之前恢复任务中的顶级Notification
}。这听起来像是一个Android bug。
无论如何,为了解决这个问题,您可以尝试让Notification
将Activity
启动到另一个任务中。为此,请在taskAffinity=""
启动的Activity
上设置Notification
。 Activity
启动的Notification
必须启动另一个Activity
,该任务将与您应用的其余部分一起在任务中运行。希望这一切都会在手机解锁后发生,这样您就不会发现onResume()
问题。
如果您需要更多帮助,请发布createNotificationIntent()
和createPendingIntentActivity()
以及您的清单相关部分的代码。