我想在单击状态栏上的通知时打开一个活动。我在 StackOverflow 上看到过这个答案,但这些答案都不适合我。
此问题仅出现在 Lollipop 设备上,最好的重现方法是:
1.启动应用程序。
2. 后台应用程序。
3. 接收推送通知。
4. 单击通知并尝试 3-4 条推送通知。
下面是我的代码:我也尝试过以下操作:
- 添加Intent.ACTION_MAIN
- Intent.CATEGORY_LAUNCHER 到意图
- PendingIntent.FLAG_UPDATE_CURRENT。
- android:exported="true" 在我的 AndroidManifest.xml 中
但没有任何效果。我仅在 Lollipop 设备上看到此问题。
请注意,我间歇性地看到这个问题。这是否与意图被缓存但未传递有关。请帮忙。
PendingIntent pendingIntent = getPendingIntent(context, payload);
Builder notificationBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_stat)
.setContentTitle(res.getString(R.string.app_name))
.setContentText(payload.getMessage())
.setTicker(payload.getMessage())
.setContentIntent(pendingIntent)
.setSound(soundUri);
private PendingIntent getPendingIntent(Context context, NotificationPayload payload) {
int requestID = (int) System.currentTimeMillis();
Intent intent = new Intent(context, DeepLinkActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage(BuildConfig.APPLICATION_ID);
intent.putExtra(NotificationHelper.KEY_NOTIFICATION_PAYLOAD, payload);
return PendingIntent.getActivity(context, requestID, intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT);
}
尝试在意图中添加 Intent.FLAG_ACTIVITY_CLEAR_TASK 标志
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
这似乎解决了我的问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)