有关小部件上下文/生命周期的信息

时间:2010-12-29 15:49:11

标签: java android android-widget

我有一个打包在应用程序中的小部件,我对小部件/应用程序的上下文/生命周期有几个疑问:

  • 应用程序和窗口小部件共享相同的过程,并且是单独的单身人士?
  • 如果我有服务,他们必须是远程服务?
  • 更新小部件的过程的生命周期是什么?仅适用于小部件吗?

一般而言,有关窗口小部件生命周期/上下文的任何信息都是非常苛刻的

1 个答案:

答案 0 :(得分:1)

  

应用程序和窗口小部件共享相同的过程

如果你查看你的代码,你会发现一个扩展AppWidgetProvider的类很可能。这是为应用程序小部件占用的部分更新主屏幕UI的代码。

如果您查看自己的清单,就会看到自己将AppWidgetProvider添加为<receiver>。这表明AppWidgetProviderBroadcastReceiver。清单注册BroadcastReceivers的时间非常短 - 足以处理onReceive(),这就是它。

因此,“应用程序和窗口小部件可能会暂时共享相同的进程”,只要您已经有一个进程(例如,用户现在位于您的某个活动中),并且onUpdate()如果AppWidgetProvider被触发,则AppWidgetProvider将在同一过程中。但是,如果您的应用程序未运行,则onUpdate()的{​​{1}}将在某个过程中运行,该过程可能会或可能不会托管您的任何代码。

  

和单身的单身人士?

你不应该依赖于此。

  

如果我有服务,他们必须是远程服务?

绝对不是,对于任何“远程”的定义。

  

更新小部件的过程的生命周期是什么?仅适用于小部件吗?

见上文。