IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Mise à jour d'un appWidget


Sujet :

Android

  1. #1
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut Mise à jour d'un appWidget
    Bonjour,

    Je cherche mais je n'ai rien trouvé sur la méthode pour mettre à jour mon widget toutes les minutes (et ne pas avoir la restriction imposée par Google à 30 minutes minimum).

    Si quelqu'un connait la solution...
    Christian
    Nexus 1 sous Cyanogen - Acer A500

  2. #2
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    J'ai trouvé un exemple de widget qui se met à jour à un intervalle de temps paramétrable.

    je ferai un tuto complet, mais en attendant, la méthode se trouve dans le onReceive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    // Fix SDK 1.5 Bug per note here:
    // http://developer.android.com/guide/topics/appwidgets/index.html#AppWidgetProvider
    // linking to this post:
    // http://groups.google.com/group/android-developers/msg/e405ca19df2170e2
    @Override
    public void onReceive(Context context, Intent intent) {
     
        final String action = intent.getAction();
     
        if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) 
        {
            final int appWidgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
     
            if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
                this.onDeleted(context, new int[] { appWidgetId });
          }
        } else if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
     
            if (!URI_SCHEME.equals(intent.getScheme())) {
                // if the scheme doesn't match, that means it wasn't from the
                // alarm
                // either it's the first time in (even before the configuration
                // is done) or after a reboot or update
     
                final int[] appWidgetIds = intent.getExtras().getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
     
                for (int appWidgetId : appWidgetIds) {
     
                    // get the user settings for how long to schedule the update
                    // time for
                    SharedPreferences config = context.getSharedPreferences(ImagesWidgetConfiguration.PREFS_NAME, 0);
                    int updateRateSeconds = config.getInt(String.format(ImagesWidgetConfiguration.PREFS_UPDATE_RATE_FIELD_PATTERN, appWidgetId), -1);
     
                    if (updateRateSeconds != -1) 
                      {
                        Log.i(LOG_TAG, "Starting recurring alarm for id " + appWidgetId);
     
                        Intent widgetUpdate = new Intent();
                        widgetUpdate.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
                        widgetUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { appWidgetId });
     
                        // make this pending intent unique by adding a scheme to
                        // it
                        widgetUpdate.setData(Uri.withAppendedPath(Uri.parse(ImagesWidgetProvider.URI_SCHEME + "://widget/id/"), String.valueOf(appWidgetId)));
                        PendingIntent newPending = PendingIntent.getBroadcast(context, 0, widgetUpdate, PendingIntent.FLAG_UPDATE_CURRENT);
     
                        // schedule the updating
                        AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
                        alarms.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), updateRateSeconds * 1000, newPending);
                    }
                }
            }
            super.onReceive(context, intent);
        } else {
            super.onReceive(context, intent);
        }
    }
    NB : voir la FAQ pour le code complet
    Christian
    Nexus 1 sous Cyanogen - Acer A500

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour automatique AppWidget
    Par ifiii dans le forum Android
    Réponses: 0
    Dernier message: 31/07/2014, 17h40
  2. AppWidget mise à jour
    Par skywallker dans le forum Android
    Réponses: 6
    Dernier message: 31/12/2011, 02h24
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo