我很难找到相关文档。对于android小部件的提供者,该特定提供者对象的生命周期是什么? 我注意到,如果我开始进行异步测试,然后在以后查找该对象,它就会消失。 (通过观察,我可以从onReceive调用onUpdate,我可以告诉收到的内容将一直存在,直到onUpdate完成)
答案 0 :(得分:2)
AppWidgetProvider
是BroadcatReceiver
。您可以在BroadcatReceive和AppWidgetProvider中找到有用的信息。Google Docs说:
BroadcastReceiver对象仅在通话期间有效 to onReceive(Context,Intent)。一旦你的代码从此返回 功能,系统认为要完成的对象不再 活性
这对你能做些什么有重要的影响 onReceive(Context,Intent)实现:需要的任何东西 异步操作不可用,因为您需要 从函数返回来处理异步操作,但是在 那一点,BroadcastReceiver不再是活动的,因此 系统可以在异步操作之前自由地终止其进程 完成。
特别是,您可能无法显示对话框或绑定到服务 在BroadcastReceiver中。对于前者,你应该使用 NotificationManager API。对于后者,你可以使用 Context.startService()将命令发送到服务。
另请查看this web page。