1

我很难找到这方面的文档。对于 android 小部件的提供者,该特定提供者对象的生命周期是什么?我注意到,如果我开始一个异步测试,然后再查找该对象,它就消失了。(通过观察我可以从 onReceive 调用 onUpdate,并且我可以告诉接收到的将是活动的,直到 onUpdate 完成)

4

1 回答 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 回答