为什么在设置首选项后我的Widget没有更新?

时间:2010-07-02 10:06:00

标签: android-widget

  

可能重复:
  Using PreferencesActivity from a widget?

我有一个带有相关PreferenceActivity / PreferenceScreen的小部件。我想在用户完成首选项设置时更新我的​​小部件。

我在我的PreferenceActivity中使用onBackPressed,正在调用它,但是没有调用widget的onUpdate。有人可以对此有所了解吗?

public void onBackPressed() {
 if (CONFIGURE_ACTION.equals(getIntent().getAction())) {
  Intent intent=getIntent();
  intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
  Bundle extras=intent.getExtras();

   if (extras!=null) {
    int id=extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    AppWidgetManager mgr=AppWidgetManager.getInstance(this);
RemoteViews views=new RemoteViews(getPackageName(), R.layout.widget);

mgr.updateAppWidget(id, views);

Intent result=new Intent();

result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
setResult(RESULT_OK, result);
sendBroadcast(new Intent(this, WidgetProvider.class));
   }
  }
  super.onBackPressed();
 }

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题。看看这篇文章...... Using PreferencesActivity from a widget?