我在我的应用程序中托管小部件,看起来,如果我在启动设备之前启动我的应用程序完成后,无法正确创建小部件。然后小部件似乎没有完全加载或没有正确初始化/更新。例如:显示电池状态百分比的BatteryBotIndicator-Widget显示的值为“XX”,而不是像“70%”这样的数字。如果我再重新启动我的应用程序,并尝试重新创建控件:如何暂停onCreate直到引导完成?
AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(appWidgetId);
它给我空了appWidgetInfo(我取appWidgetId从SQLite数据库)。并且小部件不能被重新创建。
在这种情况下调试真正的原因很难找出究竟是什么造成了这种情况(在正确的时间启动调试器)。我假设AppWidgetManager还没有准备好或者什么。
我可以肯定地说:如果我等到我收到广播事件BOOT_COMPLETED,所有小部件都会正确创建。
那么我怎样才能暂停执行onCreate直到启动完成?
我可以考虑把线程在while循环中休眠,直到BroadcastReceiver(BOOT_COMPLETED)将application-data中的bool变量设置为true。但我不想在我的应用程序的启动总是等待这个事件,你可以想像;)
您是否尝试过正常运行应用,并且只在收到BOOT_COMPLETED广播时添加小部件?暂停onCreat我不认为会是一个好方法来处理您的问题。 – MRodrigues
谢谢。仅在引导发生之前添加小部件才是真的不错;)因为我可能安装应用程序,添加小部件,重新启动应用程序而不重新启动。结果=没有小工具! – treesoft