1

Я использую этот код в андроиде службы для отправки уведомлений:Android уведомления (если приложение открыто)

notification.setLatestEventInfo(this, "title", "text", pendingIntent); 
notification.flags |= Notification.FLAG_AUTO_CANCEL; 
notificationManager.notify(id, notification); 

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

ответ

0

public static final int FLAG_ONGOING_EVENT

С: Уровень API 1 бит для поразрядно-Ored в поле флагов, которые должны быть установлены, если это уведомление со ссылкой на то, что продолжается, как телефонный звонок.

public static final int FLAG_FOREGROUND_SERVICE

С: API Level 5 бит для поразрядно-Ored в поле флагов, которые должны быть установлены, если это уведомление представляет собой в настоящее время работает сервис.

Попробуйте использовать:

notification.flags |= Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_NO_CLEAR 
+0

большое спасибо, это работает. – user3266002

0

Не работает для меня ... с

notification.flags |= Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_NO_CLEAR 

уведомление остаются и не исчезают после нажатия.

Я следовал этот учебник http://programmerguru.com/android-tutorial/how-to-send-push-notifications-using-gcm-service/ и все работает нормально, но при открытии приложения и я нажмите на Notific прибыли, ничего не появляется ....

private void sendNotification(String trmMsg,String user, int role) { 
    Intent resultIntent = new Intent(this, MainActivity.class); 
    resultIntent.putExtra("trmjson", trmMsg); 
    resultIntent.putExtra("fragment", "readN"); 
    resultIntent.setAction(Intent.ACTION_MAIN); 
    resultIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0,resultIntent, PendingIntent.FLAG_ONE_SHOT); 

    NotificationCompat.Builder mNotifyBuilder; 
    NotificationManager mNotificationManager; 

    mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    String msg = role == 1 ? user + " conferma il cambio di turno!" : "Attenzione, cambio di turno!"; 

    mNotifyBuilder = new NotificationCompat.Builder(this) 
      .setContentTitle("TRM") 
      .setContentText(msg) 
      .setSmallIcon(R.drawable.ic_notific); 
    mNotifyBuilder.setContentIntent(resultPendingIntent); 

    int defaults = 0; 
    defaults = defaults | Notification.DEFAULT_LIGHTS; 
    defaults = defaults | Notification.DEFAULT_VIBRATE; 
    defaults = defaults | Notification.DEFAULT_SOUND; 

    mNotifyBuilder.setDefaults(defaults); 
    mNotifyBuilder.setContentText(msg); 
    mNotifyBuilder.setAutoCancel(true); 
    mNotificationManager.notify(notifyID, mNotifyBuilder.build()); 
} 
+0

Я решил использовать System.exit (0) после mNotificationManager.notify (notifyID, mNotifyBuilder.build()); но я знаю, что это неправильное решение ... – TecnoHelp83

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