В XML-файле AppWidgetProvider есть атрибут, называемый android:configure
. Вы можете использовать это, чтобы указать на действие, которое будет запущено, когда приложение будет сброшено на главный экран. ex:
<?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" />
В вашей выбранной деятельности конфигурации пользователь может сделать любой выбор, который они хотят. Вам нужно будет захватить и сохранить идентификатор виджета. В методе 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();
Получится то, что вам нужно.