我对App Widget默认运行的过程有点困惑.在Android开发者处阅读:
"默认情况下,每个应用程序都在自己的进程中运行,应用程序的所有组件都在该进程中运行" - 来自:http://developer.android.com/guide/components/processes-and-threads.html
我的教科书说:
"Android App Widgets不在应用程序进程中运行,而是在主机进程中运行.因此,App Widget使用RemoteViews类来定义其用户界面.RemoteViews类支持整个View层次结构的子集,以便在另一个进程中显示一般来说,您希望在onUpdate()方法期间配置RemoteViews对象并将其发送到App Widget Manager.但是,您还需要在创建实例并存在配置活动时更新它.来自:Android无线应用程序开发第二卷第3版,第370页
有人之前也问了这个问题,答案是"同一个过程": android小部件是否在与它的应用程序相同的进程中运行
有人可以帮助我理解Android App Widget是在自己的进程中运行还是与主应用程序运行相同.谢谢
这取决于你认为"Android App Widget"实际上是什么:
如果您认为应用程序窗口小部件是在主屏幕上运行的UI,则该UI将由主屏幕的进程呈现.
如果您认为应用程序小部件是其子类AppWidgetProvider
,那么它将在您自己的应用程序进程中运行.
app widget系统是一个插件机制.主屏幕在Android框架的帮助下RemoteViews
从中请求对象AppWidgetProvider
.那些RemoteViews
代表主屏幕要呈现的UI.但是,与您的任何其他应用程序组件一样,创建它的工作RemoteViews
将在您的过程中.通常,处理点击事件的工作将通过一个路由到您的流程PendingIntent
.