2017-02-14 8 views
0

Я работаю над большим проектом с новой командой, и мне было предложено добавлять уведомления, которые будут отображаться при выполнении определенных условий, но у меня возникают проблемы с их получением для отображения вообще.Уведомления Android не отображаются, но код работает без ошибок

Вот код, я прямо сейчас, не связанный код опущен:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    this.context = container.getContext(); 
    view = inflater.inflate(R.layout.module_menu, container, false); 
    this.initNotify("TITLE","Message"); 
    return view; 
} 

private void initNotify(String title, String message) { 
    NotificationCompat.Builder b = new NotificationCompat.Builder(context) 
      .setAutoCancel(true) 
      .setOngoing(false) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle(title) 
      .setContentText(message) 
      .setFullScreenIntent(PendingIntent.getActivity(context, 1, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT), true) 
      .setStyle(new NotificationCompat.BigTextStyle()); 

    NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); 
    nm.notify(1, b.build()); 
} 

Класс именно в это фрагмент, который был назван моей основной деятельностью. Код запускается при вводе в новые приложения без проблем и корректно отображает уведомление, но отказывается работать с этим конкретным проектом. Минимальный API - 8.

Есть ли какие-либо вещи, которые я, возможно, пропустил, или любые фрагменты, которые могут мешать мне отображать уведомления?

Кроме того, возможно ли, что приложение «подавляет» уведомления от отображения, и если да, то какой код мне нужно искать?

ответ

0

Это потому, что вы устанавливаете идентификатор уведомления как константу nm.notify(1, b.build());. Чтобы отобразить все уведомления, вы должны использовать динамические значения. как этот

private void initNotify(String title, String message,int id) { 
    NotificationCompat.Builder b = new NotificationCompat.Builder(context) 
      .setAutoCancel(true) 
      .setOngoing(false) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle(title) 
      .setContentText(message) 
      .setFullScreenIntent(PendingIntent.getActivity(context, 1, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT), true) 
      .setStyle(new NotificationCompat.BigTextStyle()); 

    NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); 
    nm.notify(id, b.build()); 
} 

и набор уведомлений, как (например)

for(int i=0;i<10;i++){ 
initNotify("title", "message",i); 
} 
+0

Я пробовал ваш метод, но тот же результат случается. Код определенно выполняется по-прежнему без ошибок, но ничего не отображается снова. Однако ваш метод работает только на пустом приложении, которое я использовал для тестирования, отображая уведомление, как предполагалось. Это то, что заставляет меня думать, что что-то может подавлять уведомления по какой-либо причине. –

+0

попытаться добавить'.setContentIntent' –

+0

Еще не повезло, к сожалению –

0

Я попробовал ваш код. Моя машина была в порядке.

У вас есть уведомление?

+0

Я не уверен, что вы имеете в виду. Должен ли я явно объявлять разрешение для этого в моем манифесте? –

+0

Какова ваша цельSdkVersion? – jianfeng

+0

Цель 9, минимум 8, и ее нельзя изменить –