我很难找到这方面的文档。对于 android 小部件的提供者,该特定提供者对象的生命周期是什么?我注意到,如果我开始一个异步测试,然后再查找该对象,它就消失了。(通过观察我可以从 onReceive 调用 onUpdate,并且我可以告诉接收到的将是活动的,直到 onUpdate 完成)
问问题
3301 次
1 回答
3
AppWidgetProvider
是一个BroadcatReceiver
。您可以在有关 BroadcatReceive 等 AppWidgetProvider 中找到有用的信息。谷歌文档说:
BroadcastReceiver 对象仅在调用 onReceive(Context, Intent) 期间有效。一旦您的代码从此函数返回,系统就会认为该对象已完成且不再处于活动状态。
这对你在 onReceive(Context, Intent) 实现中可以做的事情有重要的影响:任何需要异步操作的东西都不可用,因为你需要从函数返回来处理异步操作,但此时 BroadcastReceiver 是不再活动,因此系统可以在异步操作完成之前自由地终止其进程。
特别是,您可能不会在 BroadcastReceiver 中显示对话框或绑定到服务。对于前者,您应该改用 NotificationManager API。对于后者,您可以使用 Context.startService() 向服务发送命令。
也看看这个网页。
于 2013-03-29T04:32:59.093 回答