Profete162 Posté(e) 5 avril 2010 Share Posté(e) 5 avril 2010 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.