Aller au contenu

Widget qui pète les plombs


Profete162

Recommended Posts

Salut le monde.

Je vous envoie ci dessous le code d'un simple widget! ( 2 bouttons)

Le petit soucis avec lui est que je le place sur le bureau, il fonctionne. Je fais un peu joujou avec ma machine, il refonctionne encore. Génial me direz-vous?

Non! Car apres un temps indéfini, plus rien ne fonctionne... Je vois bien les clicks sur les boutons, mais il semble complètement mort. Plus rien ne se passe.

J'essaye alors de retirer le widget du bureau et d'en recréer un, et de temps en temps ca refonctionne comme par magie ( j'ai remis 4-5 fois un nouveau widget et attendu des heures)

Je ne comprends vraiment pas ce qui se passe.. Un probleme de service tué?

Merci pour toutes vos pistes car là, je désespère vraiment!

public class TrainAppWidgetProvider extends AppWidgetProvider 
{ 

   public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
   public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
   public static String W_heure="0";
   public static String W_sid="0";

   public static class UpdateService extends Service {
       @Override
       public void onStart(Intent intent, int startId) {

           // Build the widget update for today
           RemoteViews updateViews = buildUpdate(this);

           // Push update for this widget to the home screen
           ComponentName thisWidget = new ComponentName(this, TrainAppWidgetProvider.class);
           AppWidgetManager manager = AppWidgetManager.getInstance(this);
           manager.updateAppWidget(thisWidget, updateViews);
           Toast.makeText(this, "Start OK", Toast.LENGTH_SHORT).show();
       }

       @Override
       public IBinder onBind(Intent intent) {
           // TODO Auto-generated method stub
           return null;
       }

        public RemoteViews buildUpdate(Context context) {
            // Pick out month names from resources
            // Find current month and day
            Time today = new Time();
            today.setToNow();

            RemoteViews updateViews = null;

            updateViews = new RemoteViews(context.getPackageName(), R.layout.widget);

            updateViews.setTextViewText(R.id.tid,W_heure+"- "+today);
            updateViews.setTextViewText(R.id.title, W_sid);
            return updateViews;
        }

   }

   public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

       // To prevent any ANR timeouts, we perform the update in a service
       context.startService(new Intent(context, UpdateService.class));

       final int N = appWidgetIds.length;

       // Perform this loop procedure for each App Widget that belongs to this provider
       for (int i=0; i            int appWidgetId = appWidgetIds[i];

        // Bouton 2
           Intent intent = new Intent(context, BETrains.class);
           PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
           views.setOnClickPendingIntent(R.id.control_play, pendingIntent);


        // Bouton 1
           intent = new Intent(context, TrainAppWidgetProvider.class);
           intent.setAction("monUpdate");
           pendingIntent = PendingIntent.getBroadcast(context,0, intent,0);
           views.setOnClickPendingIntent(R.id.control_next, pendingIntent);


           // Tell the AppWidgetManager to perform an update on the current App Widget
           appWidgetManager.updateAppWidget(appWidgetId, views);


       }
   }
   @Override
   public void onReceive(Context context, Intent intent) {

       final String action = intent.getAction();
       if( action.contentEquals("monUpdate"))
               monUpdate(context);
       super.onReceive(context, intent);
   }

   public void monUpdate(Context context) {
       context.startService(new Intent(context, UpdateService.class));

   }  
}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...