Android App Widgets是在应用程序进程还是主机进程中运行?

时间:2014-06-02 19:42:08

标签: android process widget android-appwidget

我对App Widget默认运行的进程有点困惑。 在Android开发者处,我读到:

  

“每个应用程序都在自己的进程中运行,并且应用程序的所有组件都在该进程中运行,默认情况下” - 来自:http://developer.android.com/guide/components/processes-and-threads.html

我的教科书说:

  

“Android App小部件不会在应用程序进程中运行,而是在主机的进程中运行。   因此,App Widget使用RemoteViews类来定义其用户界面   RemoteViews类支持整个View层次结构的子集,以便在另一个层次结构中显示   处理。一般来说,您要配置RemoteViews对象并发送它   在onUpdate()方法期间到App Widget Manager。但是,你也需要   在创建实例并且存在配置活动时更新它。“来自:Android无线应用程序开发第二卷第3版,第370页

之前有人也问了这个问题,答案是“同一个过程”: Does an android widget run in the same process as it's app

有人可以帮助我了解Android App Widget是在自己的进程中运行还是与主应用程序运行相同。感谢

1 个答案:

答案 0 :(得分:6)

这取决于你认为“Android App Widget”实际上是什么:

  • 如果您认为应用程序小部件是在主屏幕上运行的一些UI,则该UI将由主屏幕的过程呈现。

  • 如果您认为应用小部件是AppWidgetProvider的子类,则会在您自己的应用进程中运行。

app widget系统是一个插件机制。主屏幕在Android框架的帮助下从RemoteViews请求AppWidgetProvider个对象。那些RemoteViews表示主屏幕要呈现的UI。但是,创建的工作RemoteViews将在您的流程中,与任何其他应用组件一样。通常,处理点击事件的工作将通过PendingIntent路由到您的流程。