2012-03-22 3 views
13

При использовании PendingIntent в AppWidgetProvider, я использую следующий код:Отмены PendingIntent

views.setOnClickPendingIntent(viewId, 
       PendingIntent.getBroadcast(context, 0, intent, 
       PendingIntent.FLAG_UPDATE_CURRENT)); 

Так в настоящее время там нет ссылок сведены к PendingIntent возвращаемого метода getBroadcast. В конкретной ситуации я сейчас хочу отменить PendingIntent. Есть ли способ вернуть PendingIntent из представления? Или это единственный способ позже вызвать метод отмены PendingIntent, сохранив ссылку на него?

+0

См. Http://stackoverflow.com/a/4350149/165674 –

+0

Спасибо, Dheeraj! Сейчас я немного спешу, но я проверю его и попробую как можно скорее. Ура! –

ответ

29

Где вы хотите, чтобы отменить его, вы должны сделать следующее (где-то в программном коде):

PendingIntent.getBroadcast(context, 0, intent, 
          PendingIntent.FLAG_UPDATE_CURRENT).cancel(); 

где intent тот же один как указано в коде выше. PendingIntent.getBroadcast(...), используя PendingIntent.FLAG_UPDATE_CURRENT, вернет ссылку на уже созданную или создаст ее, если она в настоящее время не существует.

+0

А, это действительно трюк. :) Благодаря! –

+2

does getBroadcast возвращает тот же объект * ссылка * в случае, если я использую этот флаг? –

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

  • Нет связанных вопросов^_^