2

何をしても、ウィジェットのボタンをクリックしても何もトリガーできません。これが私が書いたコードonReceiveです。ウィジェットボタンがクリックされたときに呼び出されない理由を誰か教えてもらえますか?

さらに、ボタンのクリックで関数を実行したい...以下のコードに基づいて、正しい考えがありますか?

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());
    }
}
4

1 に答える 1

2

最初に onReceive のスーパー メソッドを呼び出してみてください。

 @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());
}

私にとってはうまくいきました!

于 2012-07-03T08:24:12.043 に答える