RemoteViews构造函数中的包名是什么?



根据文档,RemoteViews的构造函数是

public RemoteViews (String packageName, int layoutId)

文档中说packageName是"包含布局资源的包名"。

  • 为什么需要这个?
  • 难道layoutId不会告诉你所有你需要知道的布局资源的位置吗?
  • 你会把什么作为包的名字?
  • 不总是res->layout吗?

既然Sirlate已经回答了"为什么需要这个?",我将尝试回答其余的问题。

难道layoutId不能告诉你所有你需要知道的关于布局资源位置的信息吗?

不,layoutId和其他资源一样,ID只是一个数字。当您通过R.layout.some_layout引用它时,它实际上引用了ID本身,作为一个数字。

不总是res->layout吗?

其实,不是!您可以将任何资源放在任何文件夹中(只要在/res内),即使它是布局资源。/res/layout/只是一个方便的文件夹,因为Android已经在第一处定义了它。毕竟,Android只会将资源引用为ID号。

你会把什么作为包的名字?

你想要使用布局的应用程序的包名,如Sirlate所述。

为什么需要这个?

除了Sirlate的回答,如果你只有一个资源ID,操作系统将不可能决定从哪个包/应用程序布局。

如果您有多个小部件和应用程序,并且您使用相同的密钥对它们进行签名(使用相同的密钥对应用程序进行签名允许它们访问彼此的数据),那么您也可以访问它们,它们没有相同的包名称

最新更新