2014-10-16 5 views
2

Обновлены MyService @CommonsWareAndroid уведомления от службы не открывается активность

У меня есть служба, которая, если начала установят сигнализацию, которая вызывает уведомление.

Это нормально работает, и аварийные сигналы отменены, если служба остановлена.

я пытаюсь получить уведомление, чтобы открыть новый класс активности, но не может сделать это

моего класса обслуживания заключается в следующем:

package com.example.andtip; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v4.app.NotificationCompat; 


public class BReceiver extends BroadcastReceiver { 
private static final int MY_NOTIFICATION_ID=1; 
    NotificationManager notificationManager; 
    Notification myNotification; 

public void onReceive(Context context, Intent intent) { 

    Intent myIntent = new Intent(context, DoSomething.class); 

    PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent("com.example.andtip"),0); 
    PendingIntent pi2 = PendingIntent.getActivity(context, 0, myIntent,0); 

     myNotification=new NotificationCompat.Builder(context) 
    .setContentTitle("This is a notification from the example alarm application.") 
     .setContentText("Notification")  
     .setTicker("Notification!") 
     .setWhen(System.currentTimeMillis()) 
    .setContentIntent(pi) 
     .setDefaults(Notification.DEFAULT_SOUND)     
     .setAutoCancel(true) 
     .setSmallIcon(R.drawable.ic_launcher) 
    .build(); 

     notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(MY_NOTIFICATION_ID, myNotification); 

     } 
} 

, как я должен связать намерения PI2 к уведомление?

ответ

2

я пытаюсь получить уведомление об открытии нового класса активности, но не может сделать это

Вы используете getBroadcast() создать PendingIntent. Используйте getActivity(), чтобы создать PendingIntent, который запускает действие. Убедитесь, что значение Intent, введенное в поле PendingIntent, предназначено для действия и убедитесь, что в его манифеста включена запись.

+1

Спасибо @CommonsWare я изменил getbroadcast на getactivity и добавил намерение (context, dosometing.class) сейчас, как только триггер отключился, действие открывается, но я больше не получаю уведомление (хотел нажать его перед новым действием открывается) –

+1

@IngolfKrauss: У вас есть два разных 'PendingIntent', которые вы используете. Один для тревоги. Это должно вызвать «BroadcastReceiver», который отображает «Уведомление». Второй «PendingIntent» - это тот, который вы используете в «Уведомлении». * Это * тот, который должен быть 'getActivity()' 'PendingIntent'. – CommonsWare

+0

Еще раз спасибо за подсказку, я обновил сообщение и изменил широковещательный приемник и добавил ожидаемое намерение getactivity, как оно связано с уведомлением? –

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