我对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是在自己的进程中运行还是与主应用程序运行相同。感谢
答案 0 :(得分:6)
这取决于你认为“Android App Widget”实际上是什么:
如果您认为应用程序小部件是在主屏幕上运行的一些UI,则该UI将由主屏幕的过程呈现。
如果您认为应用小部件是AppWidgetProvider
的子类,则会在您自己的应用进程中运行。
app widget系统是一个插件机制。主屏幕在Android框架的帮助下从RemoteViews
请求AppWidgetProvider
个对象。那些RemoteViews
表示主屏幕要呈现的UI。但是,创建的工作RemoteViews
将在您的流程中,与任何其他应用组件一样。通常,处理点击事件的工作将通过PendingIntent
路由到您的流程。