【问题标题】:How do I trigger something from a widget button?如何从小部件按钮触发某些内容?
【发布时间】:2012-07-03 08:12:06
【问题描述】:

无论我做什么,我都无法通过单击小部件上的按钮来触发任何事情。这是我写的一些代码,谁能告诉我为什么单击小部件按钮时不调用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());
    }
}

【问题讨论】:

    标签: android android-intent android-widget


    【解决方案1】:

    尝试先调用 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());
    }
    

    对我来说工作得很好!

    【讨论】:

    • 肯定会调用 super.onReceive。没有它,您的小部件将无法工作。
    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2011-03-09
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多