【问题标题】:Push Notification shows every time on app launch每次应用启动时都会显示推送通知
【发布时间】:2014-10-01 05:51:59
【问题描述】:

我按照教程在我现有的应用程序上实现了 GCM 推送通知。我已设置 Main 活动以显示通知。用户收到通知,单击它并在Main 活动上显示通知。问题出在应用程序重新启动时,它每次都会显示通知。

主要活动

public void registerGCM() {
    ....
    protected Void doInBackground(Void... params) {
        ServerUtilities.register(context, uname, uemail, regId);
    }
}

我在Main 活动的onCreate 上调用此函数来注册应用程序。此过程运行良好。

这是 onCreate 函数之外 Main 活动中的 BoradcaseReceiver 代码。

private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
        WakeLocker.acquire(getApplicationContext());
        Toast.makeText(getApplicationContext(), "New Message: " + newMessage, Toast.LENGTH_LONG).show();
        WakeLocker.release();
    }
};

它应该只在用户点击它时显示一次通知(这很好用),但每次使用启动应用程序时它也会显示通知。如何防止这种情况发生?

如果我不够清楚,请告诉我。 任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: android notifications push-notification google-cloud-messaging


    【解决方案1】:

    如果我理解正确你错过了这个documentation

    将此属性添加到您的结果活动的活动标记之间的清单中,即 MainActivity(有关更多信息,请查看上面的链接)

    android:excludeFromRecents="true"
    android:launchMode="singleTask"
    android:taskAffinity=""
    

    我看不到您的通知接收器类,因此请确保您设置了 resultIntent 标志,例如

    resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    

    注意:不要忘记给每个通知一个唯一的 id

    【讨论】:

    • 感谢您的评论。在进行您提到的编辑后,我会回复您。谢谢!
    • 我已经按照你的解释编辑了代码,我仍然遇到同样的问题。这是更新后的代码: Manifest: <activity android:label="MyAppName" android:name="Main" android:excludeFromRecents="true" android:launchMode="singleTask" android:taskAffinity="" /> GenerateNotification: notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); 你能解释一下如何将唯一 ID 传递给通知吗?
    • 能否分享一下您注册并收到通知的完整代码
    • 这是我用过的教程。我刚刚将教程的 MainActivity 部分移至我的应用程序 Main Activity。如果您分享您的电子邮件,我会将主要活动代码通过电子邮件发送给您。
    • 看不到你的邮件,是公开分享的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    相关资源
    最近更新 更多