android - 从 Activity 更新 Android 小部件

标签 android android-activity widget

我有一个小部件,它的设置使得当我点击它时,它会在一个 Activity 中打开一些设置。

views.setOnClickPendingIntent(R.id.btnActivate, pendingIntent);

这为应用程序配置了一些设置。我想要实现的是让小部件更新其 View 以在我启动的 Activity 关闭时反射(reflect)更改的设置。使用更新间隔或任何其他类型的轮询对此不合适。

我在这里和 android 文档中看到了几个地方,这段代码使用了:

appWidgetManager.updateAppWidget(mAppWidgetId, views);

但是我不知道如何获取mAppWidgetId 值。我尝试按照此处的小部件配置 Activity 示例 http://developer.android.com/guide/topics/appwidgets/index.html ,但在下面的代码中,

    Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
    mAppWidgetId = extras.getInt(
            AppWidgetManager.EXTRA_APPWIDGET_ID, 
            AppWidgetManager.INVALID_APPWIDGET_ID);
}

extras 始终为 null,因此我从未获得 AppWidgetID。

好吧,现在我只是漫无边际。你觉得我能做什么?

最佳答案

我终于找到了我要找的答案,它在 updateAppWidget 函数的重载中。

   appWidgetManager.updateAppWidget(new ComponentName(this.getPackageName(), Widget.class.getName()), views);

这让我无需知道 appWidgetID 即可访问小部件。我在 Activity 中的最终代码是:

        // Create an Intent to launch ExampleActivity
    Intent intent = new Intent(this, Settings.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    views.setOnClickPendingIntent(R.id.btnActivate, pendingIntent);

    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
    appWidgetManager.updateAppWidget(new ComponentName(this.getPackageName(), Widget.class.getName()), views);
    finish();

我必须执行与在 Widget 的 onUpdate 方法中必须执行的所有设置相同的操作,但现在每次我退出 Activity 时,Widget 都会显示正确的状态。

关于android - 从 Activity 更新 Android 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073907/

相关文章:

android - 如何使用 Gson 跳过空条目

android webview 不使用 WebViewClient 显示视频

java - 将新条目添加到具有 dup key 的 json 文件

android的 Activity 扩展器

android - Android 上的后退按钮/后退键会触发哪些操作?

android - 从以特定方式开始和结束的 Web 链接启动 android 应用 Activity

swift - SwiftUI 小部件中的 UIKit UserDefaults

java - 如何使用 OneDrive SDK for Android 发送搜索请求

c++ - 从代码访问在 UI 中创建的 Qt 布局?

wordpress - 通过 register_widget 操作 Hook 将参数传递给 WP_Widget 构造