我有一个使用服务进行更新的Widget。它上面有一个按钮来打开活动。它完美地运作。但是,有时我点击窗口小部件打开活动,它不会工作或更新。
我的问题是: 什么杀死了应用程序小部件。如果小部件已经死了,为什么它仍然显示在屏幕上。 反正有没有创建另一个特定的小部件。
由于
答案 0 :(得分:2)
Android会在面向内存不足的情况下停止播放窗口小部件。 然后它将在自动清理RAM后重新启动主窗口小部件。 但这一次,你的家庭小部件将获得与上一个小块不同的pid, 所以它不能回应广播。
答案 1 :(得分:0)
我必须在我的服务类中包含此代码。它的作用基本上是将更新发送到每个小部件。它已经超过一年了,我的小部件上的按钮始终有效,小部件更新没有任何问题。我发布这个希望它可以帮助有同样问题的人。我花了一年多的时间来解决它。
int[] arrayOfInt = AppWidgetManager.getInstance(getBaseContext())
.getAppWidgetIds(new ComponentName(this, mywidget.class));
AppWidgetManager localAppWidgetManager = AppWidgetManager
.getInstance(this);
new WebView().onUpdate(getBaseContext(), localAppWidgetManager,
arrayOfInt);
int i = arrayOfInt.length;
for (int j = 0;; j++) {
if (j >= i)
return;
int k = arrayOfInt[j];
RemoteViews localRemoteViews = new RemoteViews(getBaseContext()
.getPackageName(), R.layout.xx);
localRemoteViews.setTextViewText(R.id.tv, tv_text);
localRemoteViews.setOnClickPendingIntent(R.id.Button01,
PendingIntent.getActivity(getBaseContext(), 0, new Intent(
getBaseContext(), LicenseCheck.class), 1));
localAppWidgetManager.updateAppWidget(k, localRemoteViews);
}