1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Kein onUpdate bei Widget?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Pantek, 18.04.2010.

  1. Pantek, 18.04.2010 #1
    Pantek

    Pantek Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    28.03.2010
    Phone:
    Motorola Milestone
    Hallo!

    Ich bin an meinem ersten Widget dran und so gut die ersten paar Schritte auch liefen, so tief stecke ich nun fest. Bis gestern wurde onUpdate brav ausgeführt, wenn das Widget aufm Desktop erstellt wurde und ab dann im angegebenen Takt. Seit gestern allerdings passiert gar nichts mehr. Das Widget wird zwar angezeigt, aber onUpdate nie ausgeführt.

    Mir ist nicht klar, dass ich etwas entsprechendes geändert hätte, deswegen bin ich um jeden Hinweis dankbar!

    Manifest
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="ch.pantek.windfinderwidget"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">       
            <activity
                android:name=".Main"
                android:label="@string/config_title">            
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                
                </intent-filter>            
            </activity>
            
            <receiver android:name=".WindfinderWidget" android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data android:name="android.appwidget.provider" android:resource="@layout/wf_widget_provider"/>
            </receiver>
        </application>
    
    
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="6"></uses-sdk>
    </manifest>
    Widget Provider
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <appwidget-provider 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="294dip"
        android:minHeight="146dip"
        android:updatePeriodMillis="1000"
        android:initialLayout="@layout/widgetscreen"
    />
    WindfinderWidget.java
    Code:
    package ch.pantek.windfinderwidget;
    
    import android.appwidget.AppWidgetManager;
    import android.appwidget.AppWidgetProvider;
    import android.content.ComponentName;
    import android.content.Context;
    import android.database.Cursor;
    import android.widget.RemoteViews;
    
    public class WindfinderWidget extends AppWidgetProvider
    {
        long lastupdate=0, goodupdate=0, timediff;
        long current=System.currentTimeMillis();
        int updatehours, hourcounter;
        Context MyContext;
        
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds)
        {
            DBDataClass DBData = new DBDataClass(context);
            DBData.open();
            
            //Load Settings
            Cursor settings=DBData.getSettings();
            while( settings.moveToNext() == true)
            {
                String variable;
                variable=settings.getString(settings.getColumnIndex("variabel"));                
                
                if (variable.equals("updatehours") == true) 
                    updatehours=settings.getInt(settings.getColumnIndex("wert"));
                if (variable.equals("hourcounter") == true) 
                    hourcounter=settings.getInt(settings.getColumnIndex("wert"));
            }
            settings.close();
            
            if (updatehours==hourcounter)
            {
                
                //Update Widget
                RemoteViews remoteViews;
                ComponentName thisWidget;
                
                remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetscreen);
                thisWidget = new ComponentName(context, WindfinderWidget.class);
                
                appWidgetManager.updateAppWidget(thisWidget, remoteViews);
            }
            DBData.setHourCounter(hourcounter+1);
            
            DBData.close();
        }        
    }
    
    Merci im Voraus
    Jan
     

Diese Seite empfehlen