【问题标题】:android notification launches same activity twiceandroid通知两次启动相同的活动
【发布时间】:2010-12-02 10:32:40
【问题描述】:

当我单击状态栏上的通知时,它会启动一个活动,但行为很奇怪。如果我的应用程序在前台并且我单击通知,则通知意图被触发一次。如果我的应用程序在后台,那么通知意图会被触发两次。如果我退出应用程序(即所有活动都已通过点击后退按钮弹出),则会触发一次通知意图。谁能解释这种行为。代码sn-p如下:

_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);

【问题讨论】:

    标签: android android-notifications


    【解决方案1】:
    _showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    

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

    【讨论】:

    • 我会试一试,但你能解释一下为什么同一个活动要启动两次吗?
    • developer.android.com/guide/topics/fundamentals.html#acttask 。如果您阅读文档,它会清楚地说明每个标志的作用。
    • 但是为什么首先要推出 2。这似乎是一种解决方法,而不是修复方法。
    • 这不是一种解决方法。它们会启动两次,因为这是默认行为。您可以创建多个意图并拥有同一活动类的多个实例。这不是所需要的,那么旗帜就在那里提供帮助。阅读流程和后台堆栈的工作原理 - developer.android.com/guide/components/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多