我的应用程序小部件需要在首次添加到主屏幕时进行配置。我想在用户添加小部件后立即打开配置 View 。
AppWidgetProvider
没有 onCreated
事件,所以我在 onUpdate
事件上显示配置 Activity ,并在 中存储一个 bool 值code>SharedConfiguration
标记配置已经显示。有没有更简单的方法?
最佳答案
在 AppWidgetProvider XML 文件中有一个名为 android:configure
的属性
您可以使用它来指向一个 Activity,以便在将应用程序拖放到主屏幕上时启动该 Activity。例如:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.bandsintown.WidgetSettingsActivity"
android:minWidth="250dp"
android:minHeight="110dp"
android:minResizeWidth="180dp"
android:minResizeHeight="110dp"
android:resizeMode="vertical|horizontal"
android:initialLayout="@layout/widget_layout"
android:updatePeriodMillis="10000" />
在您选择的配置 Activity 中,用户可以做出他们想要的任何选择。您需要获取并存储小部件的 ID。在onCreate
方法中,像这样获取id:
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null)
mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
当他们做出选择后,使用它向您的主屏幕小部件发送一条消息,表明它已准备好显示:
Intent intent = new Intent();
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, intent);
finish();
这会得到你想要的。
关于android - 如何仅在首次创建应用小部件时显示 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13338738/