2

У меня небольшая проблема. У меня есть AlarmManager, который отправляет намерение BroadcastReceiver в методе onReceive этого класса. Я нажимаю уведомление в StatusBar ... Это работает как шарм, но мне нужно открыть действие, когда пользователь нажимает на уведомление, но есть некоторые проблемы в моем закодировать после прибегая к помощи и поиска в SO я не мог найти ответ ... так что это мой код, чтобы нажать:Открытая активность при нажатии на уведомление, отправленное из BroadcastReceiver

получатель уведомления
Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClass(this.context, NewCommit.class);  
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

PendingIntent sender = PendingIntent.getBroadcast(this.context, 192839, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT); 

NotificationCompat.Builder noti = new NotificationCompat.Builder(this.context) 
    .setSmallIcon(R.drawable.status_bar_icon) 
    .setContentTitle("My notification") 
    .setContentText("Hello World!") 
    .setContentIntent(sender); 



noti.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); 


NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(181818, noti.build()); 

Любую идею ?? Это сводит меня с ума!

Спасибо!

ответ

4

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

Помимо явного задания активности в намерениях (что-то вроде Intent намерения = новый Intent (с, NewCommit.class);)

Я думаю, что главное отличие (и проблема) в том, что вы вызывая

PendingIntent.getBroadcast 

вместо

PendingIntent.getActivity 

doc говорит:

«Извлечь ожидающий объект, который запустит новое действие, например, вызвать Context.startActivity (Intent). Обратите внимание, что действие будет запущено за пределами контекста существующего действия, поэтому вы должны использовать флаг запуска Intent.FLAG_ACTIVITY_NEW_TASK в Intent. »

+0

спасибо, чувак! Вы правы! Я потратил часы, пытаясь понять это! ! благодаря!! – Andres

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