小部件没有响应
我有使用服务进行更新的小部件。它有按钮来打开活动。它完美的作品。但是,有时我点击小部件打开活动,它不会工作或更新。小部件没有响应
我的问题是: 什么杀了一个应用程序的部件。如果小部件已经死亡,为什么它仍然显示在屏幕上。 有没有反过来重温那个特定的小部件而不创建另一个。
谢谢
我必须包括在我的服务类的代码。它的基本功能是将更新发送到每个小部件。它已经过去了一年多了,我的小部件上的按钮总能正常工作,并且小部件更新没有任何问题。我发布这个希望它会帮助有同样问题的人。我花了一年时间才解决它。
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);
}
当面临内存不足的情况时,Android将停止您的小部件。 然后它会在自动清理RAM后重新启动家庭小部件。 但是这一次,您的家庭小部件将从最后一个获得不同的pid, ,因此无法回应广播。
谢谢我想知道的。非常感谢 –
所以如果小部件得到不同的pid。有什么方法可以获得该pid,因此广播将更新小部件。 –
如果一个小部件没有响应了。它死了吗?有没有办法重温它。 –
服务仍在运行并将更新发送到小部件。但小部件不会更新。除非我删除它,并启用另一个小部件。 –