идеи

ак я настраиваю виджет моего приложения:

<appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="240dp"
    android:minHeight="193dp"
    android:updatePeriodMillis="86400000"
    android:initialLayout="@layout/xyz_appwidget"
    android:configure="com.xyz.activity.Configuration"
    />

Поэтому система выведетConfiguration активность, когда виджет был помещен пользователем на домашний экран. К сожалению, без примененной конфигурации этот виджет не должен появляться на экране.

Я добавил отладочный вывод. Это происходит, когда пользователь выбирает виджет для своего домашнего экрана.Примечание: Это когда активность Конфигурации впереди, а не виджет.

I/ActivityManager(  101): Start proc com.xyz for broadcast com.xyz/.widget.xyz.XyzWidgetProvider: pid=14371 uid=10050 gids={3003, 1015}
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_ENABLED
D/XyzWidgetProvider(14371): onEnabled
D/XyzWidgetProvider(14371): onReceive: android.appwidget.action.APPWIDGET_UPDATE

Так что это означает, что даже виджет не настроен, оба события (ENABLED, UPDATE) будут запущены.Включено имеет смысл для меня, ноОБНОВИТЬ явно нет. Особенно когдаConfiguration деятельность успешно завершена, никаких дополнительныхОБНОВИТЬ Событие отправляется.

Я также прочитал это, установив результатConfiguration активность вActivity.RESULT_CANCELEDможно отменить процесс настройки. Но так как это явно работает асинхронно, я не знаю, как сделать процесс конфигурацииблокирование? Кто-нибудь сталкивался с этим раньше?

Последнее замечание: я посмотрел в Android Gallery Widget, которыйпочему-то управляет этим правильно, поэтому ненастроенный виджет галереи не будет добавлен. Но я подозреваю, что некоторые HTCмагия там как логи не очень помогают.

Ответы на вопрос(0)

Ваш ответ на вопрос