【问题标题】:Android widget button unclickable when adding more than one widget添加多个小部件时无法点击Android小部件按钮
【发布时间】:2011-08-24 18:15:17
【问题描述】:

我有一个小部件,它基本上是一个大按钮(背景中有一些图像)。如果主屏幕上只有一个小部件(或在手机重启后有多个小部件),该按钮可以正常工作,但如果我尝试添加另一个小部件,按钮会突然停止反应(在第二个小部件上)。

几个月来一直在为此苦苦挣扎。希望您能提供帮助。

public class StatsWidget extends AppWidgetProvider {
    public static String ACTIONWIDGETCLICK = "MyWidgetClick";
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Intent intentt = new Intent(context, StatsService.class);
        context.startService(intentt);
        final int N = appWidgetIds.length;
        for (int i=0; i<N; i++) {
            int appWidgetId = appWidgetIds[i];
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
            Intent intent = new Intent(context, StatsWidgetActivity.class);
            intent.setAction(ACTIONWIDGETCLICK);
            intent.putExtra("widgetId", appWidgetId);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            views.setOnClickPendingIntent(R.id.widget_button, pendingIntent);
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }
}

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    我在您的代码中看到的唯一错误是您忘记添加

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    

    这必须在从服务/广播接收器/等启动活动时使用。否则,您是否从应用程序中的其他任何地方更新小部件?我最近遇到了挂起的意图 unresistering 本身的问题,因为我从我的应用程序中更新了小部件并且没有添加

    views.setOnClickPendingIntent(R.id.widget_button, pendingIntent);
    

    到更新代码。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 2013-01-25
      • 1970-01-01
      • 2021-01-13
      相关资源
      最近更新 更多