当我单击状态栏上的通知时,它会启动活动,但行为很奇怪。如果我的应用在前台,我单击通知,则通知意图一次发出一次。如果我的应用程序在后台,则通知意图被触发了两次。如果我退出该应用程序(即所有活动都通过击中后面按钮弹出),则通知意图一次。任何人都可以解释这种行为。代码片段如下:

_notification = new Notification(icon_id, "Ticker Text", System.currentTimeMillis());
_showActivityIntent = new Intent();
_showActivityIntent.setAction(MyActivityName);
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_NO_HISTORY);
_showActivityPendingIntent = PendingIntent.getActivity(context, 0, _showActivityIntent, 0);
_notification.setLatestEventInfo(context, "My title", "My text", _showActivityPendingIntent);
_notificationMgr.notify(notificationId, _notification);
有帮助吗?

解决方案

_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

试试这个。它将防止多个相同活动的实例。你也可以把它放在清单中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top