2 votes

Comment déclencher quelque chose à partir d'un bouton de widget ?

Quoi que je fasse, je ne peux rien déclencher en cliquant sur un bouton d'un widget. Voici le code que j'ai écrit. Quelqu'un peut-il me dire pourquoi ? onReceive n'est pas appelé lorsque le bouton du widget est cliqué ?

De plus, je veux exécuter une fonction sur le clic du bouton... sur la base du code ci-dessous, ai-je la bonne idée ?

public class WidgetProvider extends AppWidgetProvider {

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

        Intent intent = new Intent(context, WidgetProvider.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.toggleButton, pendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds[0], views);

    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // why don't i get here with the button click?
        Log.e("!", intent.getAction());
    }
}

2voto

Konstantin Points 2070

Essayez d'appeler la super méthode de onReceive en premier.

 @Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    // why don't i get here with the button click?
    Log.e("!", intent.getAction());
}

Ça a bien marché pour moi !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X