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

时间:2014-08-15 06:29:30

标签: android android-appwidget android-remoteview

the documentation开始,RemoteViews的构造函数为

public RemoteViews (String packageName, int layoutId)

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

  • 为什么需要这个?
  • layoutId不会告诉您有关布局资源位置的所有信息吗?
  • 你会把什么作为包名?
  • 它不会一直是res->布局?

2 个答案:

答案 0 :(得分:3)

由于Sirlate已回答“为什么需要这样做?”,我将尝试回答其余问题。

  

layoutId不会告诉您有关布局资源位置的所有信息吗?

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

  

它不会一直是res->布局吗?

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

  

你会把什么作为包名?

您希望使用布局的应用的包名称,如Sirlate所述。

  

为什么需要这个?

除Sirlate的答案外,如果您只有资源ID,操作系统将无法决定布局是哪个软件包/应用程序。

答案 1 :(得分:2)

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