我已经按照教程并在我现有的应用上实施了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}}
它应该只在用户点击它时显示一次通知(这很好),但每次使用启动应用时它也会显示通知。我如何防止这种情况?
如果我不够清楚,请告诉我。 任何帮助将受到高度赞赏。
谢谢!
答案 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