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

WidgetProgrammierung! Kein onUpdate()

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von padde83, 03.02.2011.

  1. padde83, 03.02.2011 #1
    padde83

    padde83 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    50
    Erhaltene Danke:
    0
    Registriert seit:
    17.06.2010
    Hallo Zusammen,

    ich möchte ein kleines Widget-Schreiben welches Daten von einem Websever überprüft. Nun habe ich mir die Beispielimplementierung App Widgets | Android Developers angeschaut und danach mein Widget erstellt.

    Widget-Info
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="294dp"
        android:minHeight="72dp"
        android:updatePeriodMillis="1800000"
        android:initialLayout="@layout/widget_layout" >
    </appwidget-provider>
    
    Widget-Layout:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="horizontal" android:background="@drawable/background" android:padding="10dip">
      <ImageView android:id="@+id/widget_icon" android:src="@drawable/icon_pro" android:layout_width="wrap_content" android:layout_height="wrap_content" />
      <TextView android:id="@+id/widget_text" android:text="dummy" android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </LinearLayout>
    
    
    Android-Manifest:
    Code:
    <?xml version="1.1" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.test.widget" android:versionCode="1"
        android:versionName="1.0">
        <application android:icon="@drawable/icon_pro"
            android:label="@string/app_name" android:theme="@style/Theme.Light.Workaround"
            android:debuggable="true">
    .....
          <receiver android:name=".MyWidgetProvider" >
                 <intent-filter>
                        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data android:name="android.appwidget.provider"
                   android:resource="@xml/widgetinfo" />
            </receiver>
        </application>
        <uses-sdk android:minSdkVersion="4" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
        <uses-permission android:name="android.permission.CAMERA" />
    
    Mein Problem ist das die onUpdate()-Methode meines AppWidgetProviders nur einmal aufgerufen wird und zwar beim erstellen des Widgets. Normalerweise sollte diese ja jede halbe Stunde aufgerufen werden. Tut se leider nicht. :( Was mich auch zu einer weiteren Frage führt.
    Ist es Möglich das Intervall kleiner zu wählen? Ich meine ich hätte da was gelesen das es ab 1.6 nicht mehr möglich ist.
    Code:
    public class MyWidgetProvider extends AppWidgetProvider{
        
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                int[] appWidgetIds) {
            super.onUpdate(context, appWidgetManager, appWidgetIds);
            Log.d(this.getClass().getSimpleName(), "Started on ["+DateFormat.getDateTimeInstance().format(new Date())+"]");
        }
    
    Im Beispiel unter WordWidget.java - wiktionary-android - Project Hosting on Google Code habe ich schon gesucht aber keine Lösung gefunden.

    Zur Info ich teste auf einem Milestone mit 2.1

    Gruß und Danke
    padde
     
  2. padde83, 03.02.2011 #2
    padde83

    padde83 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    50
    Erhaltene Danke:
    0
    Registriert seit:
    17.06.2010
    Hallo zusammen,

    also der Code aus meinem vorherigen Beitrag funktioniert.

    Anscheinend nimmt es das Android-System nicht so genau mit den 30 minuten. Es können auch leicht mal 45 minuten werden bis ein update durchgeführt wird.

    Also Problem gelöst :)
     

Diese Seite empfehlen