Преконфигурирайте Widget, след като бъде добавен

Как да отворя отново дейността по конфигуриране за изпълним модул, след като е добавен към началния екран?

Следният код от търсене в Google не работи, тъй като идентификаторът на приспособлението в екстрата не се пренася до дейността:

String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
Intent configIntent = new Intent(context, Configuration.class);
configIntent.setAction(ACTION_WIDGET_CONFIGURE);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
views.setOnClickPendingIntent(R.id.editButton, configPendingIntent);

person akupun    schedule 26.06.2011    source източник


Отговори (2)


Добре, закъснях с една година, но просто търсех същия отговор като вас и забелязах липсващ флаг във вашия код, който беше отговорът на различен проблем, който имах преди няколко дни относно чакащи намерения, екстри и джаджи. Опитайте да промените този ред от кода си:

PendingIntent configPendingIntent
    = PendingIntent.getActivity(context, 0, configIntent, 0);

до това:

PendingIntent configPendingIntent
     = PendingIntent.getActivity(context, 0, configIntent,
                                 PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent ще използва повторно съществуващи кеширани намерения, които съответстват на нови и „съвпадението“ не взема предвид екстри, така че новите екстри могат да бъдат игнорирани. Добавянето на FLAG_UPDATE_CURRENT кара PendingIntent да записва екстрите в кешираното намерение (или нещо подобно).

Както и да е, горното работи за мен току-що (въпреки че използвах и AppWidgetManager.ACTION_APPWIDGET_CONFIGURE като име на действие, ако това има някакво значение).

person damog    schedule 07.06.2012

За съжаление не го правите: спецификацията на джаджи, както съществува в момента, не поддържа повторно конфигуриране на джаджи чрез дейността по конфигуриране на джаджи.

Това, което можете да направите, е да стартирате дейността си по конфигуриране на джаджа и да проследите ръчно конкретния идентификатор на джаджа: след като новите настройки са въведени, можете да актуализирате джаджата ръчно, като използвате подходящия метод на мениджър. Вие обаче няма да можете да използвате същия кодов път, както прави нова джаджа.

person Femi    schedule 26.06.2011