添加多个小部件时,Android小部件按钮无法点击

时间:2011-08-24 18:15:18

标签: android android-widget

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

现在已经挣扎了好几个月了。希望你能够提供帮助。

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

1 个答案:

答案 0 :(得分:0)

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

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

从service / broadcastreciever / etc启动Activity时必须使用此选项。否则,您是否从应用中的任何其他位置更新小部件?我最近有一个问题,即待处理的意图取消了我自己,因为我从我的应用程序中更新了小部件并且没有添加

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

更新代码。

希望这有帮助