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

3

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

我已经苦苦挣扎了好几个月。希望你能帮忙解决。

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
我在你的代码中唯一看到的错误是你忘记添加了。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

当从服务/广播接收器等启动活动时,必须使用此选项。否则,您是否从应用程序的任何其他位置更新小部件?我最近遇到了一个问题,因为我从我的应用程序内部更新小部件,但没有添加

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

关于更新代码的事项。

希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接