我有一个使用服务来更新窗口小部件。 它有按钮就可以打开相应的活动。 它完美的作品。 但是,有时我点击小工具打开相应的活动,它不会工作或更新。
我的问题是:什么杀死一个应用程序部件。 而如果小工具是死的,为什么它仍然显示在屏幕上。 反正是有重温特定插件,而无需创建另一个。
谢谢
我有一个使用服务来更新窗口小部件。 它有按钮就可以打开相应的活动。 它完美的作品。 但是,有时我点击小工具打开相应的活动,它不会工作或更新。
我的问题是:什么杀死一个应用程序部件。 而如果小工具是死的,为什么它仍然显示在屏幕上。 反正是有重温特定插件,而无需创建另一个。
谢谢
当面临内存不足的情况Android将停止你的widget。 然后,它会自动清理内存后,重新启动您的家庭小工具。 但是这一次,你家的小部件会得到不同的PID从最后一个,所以它不能响应广播。
更新使用AlarmManager应用插件
我必须包括在我的服务类的代码。 它的作用主要是将更新发送给每一个部件。 它已经一年多了,我的插件的按钮总是工作,没有任何问题的窗口小部件的更新。 我张贴这种希望它将帮助别人同样的问题。 我花了一年多的时间解决这个问题。
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);
}