Ale*_*alo 9 android instance android-widget android-appwidget
同事!我的问题是:我有一个配置活动的应用程序小部件(最小的SDK - 2.1),它工作正常但有时它开始工作得更慢.我记录并发现在更新我的App Widget方法之前onUpdate收到了一个App Widget ID数组
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.d("onUpdate", Arrays.toString(appWidgetIds));
Run Code Online (Sandbox Code Playgroud)
但事实是,我在主屏幕上只有两个App Widget实例,但是数组的长度超过2(2):4,有时是5或6.它怎么可能如此?我的AppWidget更新缓慢的原因是我必须为所有id调用onUpdate-method,但是有些ID(正如一个人说"幻影小部件")不真实和正确.
也许,有人遇到过这样的问题并且会帮助我弄清楚如何只处理真正的app widget ID.
PS卸载然后重新安装应用程序小部件(之后所有鬼小部件都消失了) - 不是正确解决我的问题.我想以编程方式控制幽灵和真实小部件.
有人知道如何解决这个错误吗?
此代码将删除小部件(所有小部件,甚至屏幕上的小部件),因此不是理想的解决方案
ComponentName cn = new ComponentName(getApplicationContext(), YourWidget.class);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext());
int[] appWidgetIds1 = appWidgetManager.getAppWidgetIds(cn);
AppWidgetHost host = new AppWidgetHost(getApplicationContext(), 0);
for (int appWidgetId : appWidgetIds1) {
host.deleteAppWidgetId(appWidgetId);
}
Run Code Online (Sandbox Code Playgroud)
在 4.2 上删除锁定屏幕小部件时仍然存在问题(onReceive 从未被调用)
| 归档时间: |
|
| 查看次数: |
2869 次 |
| 最近记录: |