0

Мне так стыдно за задание этого вопроса, потому что я знаю лучше, но сейчас я так застрял! Я написал свой код для вызова активности при нажатии на уведомление. Однако сверхурочное время я нажимаю на уведомление, действие не начинается, вместо этого уведомление просто исчезает. У меня есть Receiver.java, который расширяет BroadcastReceiver, а затем вызывает службу сигнализации, которая содержит создатель уведомлений, который я создал. Здесь используется изготовитель уведомлений:Страница уведомления не появляется при нажатии на уведомление

Intent intent1=new Intent(Alarm.this,NotificationPage.class); 
    PendingIntent pendingIntent=PendingIntent.getActivity(Alarm.this,1,intent1,0); 

    NotificationCompat.Builder builder=new NotificationCompat.Builder(Alarm.this); 
    builder.setAutoCancel(true); 
    builder.setContentTitle(from); 
    builder.setContentText(message); 
    builder.setSmallIcon(R.drawable.icon); 
    builder.setContentIntent(pendingIntent); 
    builder.setSound(sound); 
    builder.build(); 
    nm=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    notify=builder.getNotification(); 
    notify.flags=Notification.FLAG_AUTO_CANCEL; 
    nm.notify(0, notify); 

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

Разочарованный кодировщик атм

ответ

1
public void notifyIncomingRequest(Context context,String message) 
{ 
    Intent intent=new Intent(); 
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    intent.putExtra("notification", true); 
    intent.putExtra("message", message); 
    intent.setAction(Long.toString(System.currentTimeMillis())); 
    intent.setClass(context, YOURCLASS.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    PendingIntent contentIntent = PendingIntent.getActivity(context,0,intent, PendingIntent.FLAG_UPDATE_CURRENT); 



    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_launcher).setAutoCancel(true); 

    boolean notification = true; 
    boolean notification_vibration = false; 
    boolean notification_sound = true; 



    String title = "YOURTITLE"; 
    mBuilder.setContentTitle(title); 
    String msg=message; 
    mBuilder.setContentText(msg); 
    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(title)); 


    if(notification){ 

     mBuilder.setContentIntent(contentIntent); 
     Notification notify = mBuilder.build(); 

     if(notification_vibration) 
      notify.defaults |= Notification.DEFAULT_VIBRATE; 

     if(notification_sound) 
      notify.defaults |= Notification.DEFAULT_SOUND; 

     mNotificationManager.notify(Integer.valueOf(intent.getIntExtra("number", 13)), notify); 
    } 
} 

YOURCLASS.class является активность, что вы хотите, которое будет отображаться после нажатия уведомления, попытайтесь вызвать эту функцию с соответствующим контекстом и сообщением, и вы хорошо идти.

+0

он приходит каждую минуту не каждый день, как я хотел – droidnoob

+0

@droidnoob его до вашего обслуживания, которое запрашивает уведомление о том, показывать ли уведомление каждый день или каждую минуту, проверьте свою службу и убедитесь, что вы вызываете метод notifyIncomingRequest каждый день, а не каждую минуту. (кстати, я не вижу никакой информации о том, что вы упомянули в своем комментарии, как часть вашего основного вопроса) –

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