RemoteViews 构造函数中的包名称是啥?
Posted
技术标签:
【中文标题】RemoteViews 构造函数中的包名称是啥?【英文标题】:What is package name in the RemoteViews constructor?RemoteViews 构造函数中的包名称是什么? 【发布时间】:2014-10-08 22:29:23 【问题描述】:从the documentation,RemoteViews
的构造函数是
public RemoteViews (String packageName, int layoutId)
文档说packageName
是“包含布局资源的包的名称”。
layoutId
不会告诉您有关布局资源位置的所有信息吗?
你会用什么作为包名?
不总是 res->layout 吗?
【问题讨论】:
【参考方案1】:既然 Sirlate 已经回答了“为什么需要这个?”,我将尝试回答其余的问题。
layoutId
不会告诉您有关布局资源位置的所有信息吗?
不,layoutId
,和其他资源一样,ID 只是一个数字。当您通过 R.layout.some_layout
引用它时,它实际上以数字的形式引用了 ID 本身。
不总是 res->layout 吗?
其实不是!您可以将任何资源放在任何文件夹中(只要在/res
中),即使它是布局资源。 /res/layout/
只是一个方便的文件夹,因为 android 已经首先定义了它。毕竟,Android 只会将资源称为 ID 号。
你会用什么作为包名?
您要使用布局的应用程序包名称,如 Sirlate 所述。
为什么需要这个?
除了Sirlate的回答,如果你只有一个资源ID,操作系统就不可能决定布局来自哪个包/应用程序。
【讨论】:
【参考方案2】:如果您有多个小部件和应用程序并且您使用相同的密钥对它们进行了签名(使用相同的密钥对应用程序进行签名允许它们访问彼此的数据。),那么您可能也可以访问它们而没有相同的包名。
【讨论】:
以上是关于RemoteViews 构造函数中的包名称是啥?的主要内容,如果未能解决你的问题,请参考以下文章