我有一个小部件,它基本上是一个大按钮(背景中有一些图像)。如果主屏幕上只有一个小部件(或手机重启后多个小部件),按钮工作正常,但如果我尝试添加另一个小部件,按钮突然停止响应(在第二个小部件上)。
现在已经挣扎了好几个月了。希望你能够提供帮助。
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);
}
}
}
答案 0 :(得分:0)
我在您的代码中看到的唯一错误是您忘记添加
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
从service / broadcastreciever / etc启动Activity时必须使用此选项。否则,您是否从应用中的任何其他位置更新小部件?我最近有一个问题,即待处理的意图取消了我自己,因为我从我的应用程序中更新了小部件并且没有添加
views.setOnClickPendingIntent(R.id.widget_button, pendingIntent);
更新代码。
希望这有帮助