我已经处理这个问题三天了,我已经查看了这里的每一个问题以寻求答案。我有一个带有按钮的小部件,我想做的就是每次单击它时启动一个服务。问题是按钮随机停止工作。我根本无法重新创建它,我不知道是什么原因造成的。我的服务调用 stopSelf(); 但是我的广播接收器也遇到了这个问题,所以我相信问题出在小部件上,而不是服务上。这是代码
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
Log.i("Widget", "onUpdate");
final int N = appWidgetIds.length;
for (int i=0; i<N; i++)
{
int appWidgetId = appWidgetIds[i];
Log.i("Widget", "onUpdateLoop");
Intent intent = new Intent(context, ServiceWidgetAction.class);
intent.setAction(Long.toString(System.currentTimeMillis()));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent
.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget);
views.setOnClickPendingIntent(R.id.widgetButton, pendingIntent);
views.setTextViewText(
R.id.widgetTextView,
"Some text");
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
我一遍又一遍地检查了这段代码,我不知道它为什么这样做。它在 3 部不同的手机上执行此操作,我无法重新创建它。我试过强制停止应用程序,从任务管理器中清除它,添加新的小部件等,以使小部件停止工作,但它不会。但是,当我今天早上醒来时,小部件不再起作用。任何帮助将不胜感激。