我有一个打包在应用程序中的小部件,我对小部件/应用程序的上下文/生命周期有几个疑问:
一般而言,有关窗口小部件生命周期/上下文的任何信息都是非常苛刻的
答案 0 :(得分:1)
应用程序和窗口小部件共享相同的过程
如果你查看你的代码,你会发现一个扩展AppWidgetProvider
的类很可能。这是为应用程序小部件占用的部分更新主屏幕UI的代码。
如果您查看自己的清单,就会看到自己将AppWidgetProvider
添加为<receiver>
。这表明AppWidgetProvider
是BroadcastReceiver
。清单注册BroadcastReceivers
的时间非常短 - 足以处理onReceive()
,这就是它。
因此,“应用程序和窗口小部件可能会暂时共享相同的进程”,只要您已经有一个进程(例如,用户现在位于您的某个活动中),并且onUpdate()
如果AppWidgetProvider
被触发,则AppWidgetProvider
将在同一过程中。但是,如果您的应用程序未运行,则onUpdate()
的{{1}}将在某个过程中运行,该过程可能会或可能不会托管您的任何代码。
和单身的单身人士?
你不应该依赖于此。
如果我有服务,他们必须是远程服务?
绝对不是,对于任何“远程”的定义。
更新小部件的过程的生命周期是什么?仅适用于小部件吗?
见上文。