0

Я следил за учебником и реализовал уведомление GCM push на моем существующем приложении. Я установил активность Main, чтобы показать уведомление. Пользователь получает уведомление, нажимает на него и отображает уведомление по активности Main. Проблема заключается в том, что при повторном подключении приложения он уведомляет каждый раз.Push Notification показывает каждый раз при запуске приложения

Основная деятельность

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

Im вызов этой функции на onCreate от Main деятельности зарегистрировать приложение. Этот процесс работает нормально.

Вот код BoradcaseReceiver в 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(); 
    } 
}; 

Он должен показывать только один раз, когда уведомление пользователь нажимает на нее (это работает отлично), но также показывает уведомление каждый раз использовать запустить приложение. Как я могу предотвратить это?

Пожалуйста, дайте мне знать, если я не достаточно ясен. Любая помощь будет высоко оценена.

Спасибо!

ответ

1

Если я понял вас правильно ваш отсутствующий этот documentation

добавить этот AttrS в манифесте между тегами активности для результата деятельности т.е. MainActivity (для получения дополнительной информации проверки указанной выше ссылке)

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

я могу» t см. ваш класс приемника уведомлений, поэтому убедитесь, что вы устанавливаете результирующие флаги, такие как

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

примечание: Не забудьте указать в каждом уведомлении уникальный идентификатор

+0

Я ценю комментарий. Я вернусь к вам после внесения изменений, которые вы упомянули. Благодаря! – Kevin

+0

Я отредактировал код, как вы объяснили, у меня все еще такая же проблема. Вот обновленный код: Manifest: '' GenerateNotification: 'notificationIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);' можете ли вы объяснить немного, как я могу передать уникальные идентификаторы на уведомление? – Kevin

+0

вы можете поделиться полным кодом, который вы регистрируете и получаете уведомление – santalu

Смежные вопросы