为什么我应该在Android主屏幕小部件中使用RemoteViews?

4

我正在尝试实现一个Android主屏幕小部件。我想知道为什么在实现小部件时应该使用RemoteViews?

3个回答

6

请参考此链接

如果您熟悉XML中的布局声明,那么创建应用程序小部件布局就很简单了。但是,请注意,应用程序小部件布局是基于RemoteViews的,它不支持每种类型的布局或视图小部件。

RemoteViews对象(以及相应的应用程序小部件)可以支持以下布局类:

FrameLayout
LinearLayout
RelativeLayout

以下是相关的小部件类别:
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView

不支持这些类的子类。


谢谢,但我不理解安卓团队为什么决定使用RemoteViews。 - Cris
6
出于安全原因,使用 RemoteViews 可以确保应用程序不会在另一个进程(例如 Launcher)中执行代码。因此,无法从授予给其他进程(Launcher)的特权中受益。 - Romain Guy

1
大多数情况下,小部件(widget)是托管在另一个应用程序中的,比如说Launcher,它在父应用程序进程中运行。 RemoteViews描述了可以在另一个进程中显示的视图层次结构。该层次结构从布局资源文件中膨胀,并且此类提供了一些基本操作,用于修改膨胀层次结构的内容。
这种选择背后的主要原因与安全性和性能有关。

0

RemoteViews 用于应用程序小部件。它们是独立进程的一部分,但绑定到主进程,即当我们单击小部件时,它会重定向到相关应用程序,并提供更详细的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接