每次启动应用时都会显示推送通知

时间:2014-10-01 05:52:00

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

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

主要活动

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

我在onCreate Main活动的Main上调用此功能来注册应用。这个过程很好。

这里是onCreate函数之外的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(); } }; 活动中的BoradcaseReceiver代码。

{{1}}

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

如果我不够清楚,请告诉我。 任何帮助将受到高度赞赏。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解你错了,documentation

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

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

我无法看到您的通知接收器类,因此请确保您正在设置resultIntent标志,如

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

注意:别忘了给每个通知一个唯一的ID