Как прослушать закрытое действие из виджета? (onActivityResult есть только в Activity) - PullRequest
1 голос
/ 08 октября 2010

У меня есть виджет, который запускает действие, но когда действие заканчивается с использованием метода finish (), я не знаю, как мой виджет может узнать об этом, поскольку я не могу переопределить onActivityResult (), который кажется единственным способомпрослушивать, когда действие закрывается ...

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

Если это поможет, воткод, который я использую в своем виджете для запуска Activity

 @Override
 public void onUpdate(Context context,
     AppWidgetManager appWidgetManager, int[] appWidgetIds) {

 Intent i = new Intent(context, ChooseContact.class);
 PendingIntent pendingIntent = PendingIntent.getActivity(context,0,i,0);

 RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main);
 updateViews.setOnClickPendingIntent(R.id.button, pendingIntent);

 appWidgetManager.updateAppWidget(appWidgetIds, updateViews); 
  // Not really necessary, just a habit
  super.onUpdate(context, appWidgetManager, appWidgetIds); 
 }

Ответы [ 2 ]

0 голосов
/ 08 октября 2010

Как вы сказали, для Activity лучше обновить виджет.Вы можете переопределить метод onStop для Activity и отправить Intent на виджет, чтобы попросить его перерисовать ... примерно так:

@Override
protected void onStop() {
    super.onStop();

    // save settings
    // ...

    // update widget
    Intent intent = new Intent("com.mywidget.action.SETTINGS_CHANGED");
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { widgetId });
    intent.setData(Uri.withAppendedPath(Uri.parse(App.URI_SCHEME + "://widget/id/"),
        String.valueOf(widgetId)));
    sendBroadcast(intent);
}
0 голосов
/ 08 октября 2010

Похоже, я подхожу к этому неправильно.В соответствии с документами:

Когда виджет приложения использует конфигурационное задание, оно несет ответственность за обновление виджета приложения после завершения настройки.

http://developer.android.com/guide/topics/appwidgets/index.html#Configuring

Похоже, я обновлю виджет из действия.

...