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

标签 java android android-widget

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

  • 应用程序和小部件共享相同的进程,并且连续地单例?
  • 如果我有服务,它们必须是远程服务吗?
  • 更新小部件的流程的生命周期是怎样的?仅适用于小部件?

一般来说,任何有关小部件生命周期/上下文的信息都将非常感激

最佳答案

The application and widget share the same process

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

如果您查看 list ,您会发现您添加了 AppWidgetProvider作为<receiver> 。这表明AppWidgetProviderBroadcastReceiver 。 list 注册 BroadcastReceivers生存时间很短——足够长的时间来处理onReceive() ,仅此而已。

因此,“应用程序和小部件共享同一进程”是可能的,就好像您已经有一个进程一样(例如,用户现在位于您的 Activity 之一中),并且 onUpdate()您的AppWidgetProvider被触发,则AppWidgetProvider将处于同一过程中。但是,如果您的应用程序未运行,则 onUpdate()为您AppWidgetProvider将在某个进程中运行,该进程之前可能托管或未托管过您的任何代码。

and consecuently singletons?

您不应该依赖于此。

If I've services they have to be remote ones?

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

What's the lifecycle of the process that updates the widget? Is only for the widget?

见上文。

关于java - 有关小部件上下文/生命周期的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555547/

相关文章:

java - 我完全从内存运行算法(无 IO),但我的 CPU 使用率低于 25%。可能的瓶颈是什么?

Android 包名称 - 使用破折号

android发布应用程序与谷歌地图api

android - 没有任何默认填充的 TextView

java - 使用java套接字传输文件时获取文件名和长度

java - 我正在尝试制作一个程序,要求用户提供 file.txt 并使用字母的频率来绘制条形图。我是堆栈

android - 等待 Android Volley 中的所有请求

android - 在运行时更改 Android 中自定义进度条的颜色

java - EasyMock断言异常被线程吞没

android - 在 Android 应用程序中生成条形码图像