Виджет управления питанием, показанный на короткое время при обновлении моего собственного виджета через AppWidgetManager, в чем проблема?

У меня проблема при обновлении виджета вручную через AppWidgetManager.updateAppWidget. Платформа - Android 2.2.

Вот код:
Я объявил виджет дополнительно к существующему Activity в манифесте:


        
            
        
        

Класс виджета был объявлен в Widget.java:

public class Widget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    int use_static_ip;
    RemoteViews remoteViews;

    try {
        use_static_ip = Settings.System.getInt(context.getContentResolver(), Settings.System.WIFI_USE_STATIC_IP);
        if (use_static_ip == 0) { //DHCP
            remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_dhcp);
        } else { //static IP
            remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_static);
        }
        Intent call_activity = new Intent(context, StaticIPToggle.class);
        PendingIntent pending_call_activity = PendingIntent.getActivity(context, 0, call_activity, 0);
        remoteViews.setOnClickPendingIntent(R.id.widget_icon, pending_call_activity);
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
    } catch (SettingNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

В существующем действии I добавил несколько строк для ручного обновления виджета:

        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext());
        ComponentName componentName = new ComponentName(getApplicationContext(), Widget.class);
        int[] ids = appWidgetManager.getAppWidgetIds(componentName);
        Intent update_widget = new Intent();
        update_widget.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
        update_widget.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        getApplicationContext().sendBroadcast(update_widget);

Но теперь у меня есть эта ошибка: Если виджет onClicked, он показывает виджет настроек энергии в течение короткого периода (~ 0,5 с-1 с), прежде чем будет показан желаемый виджет.

Вот снимок экрана с этой проблемой (последовательность слева направо): http://i.stack.imgur.com/rHkjw.jpg

Сначала виджет, как на левом изображении, затем изменяется на среднее изображение и либо остается там, либо изменяется на правое изображение через ~ 0 , 5-1сек.

К сожалению, я не вижу ошибок в коде, а?

Надеюсь, вы поможете мне решить эту проблему;) Заранее спасибо, С уважением, Оли

8
задан Oli 7 January 2011 в 01:38
поделиться