【问题标题】:What is package name in the RemoteViews constructor?RemoteViews 构造函数中的包名称是什么?
【发布时间】:2014-10-08 22:29:23
【问题描述】:

the documentationRemoteViews的构造函数是

public RemoteViews (String packageName, int layoutId)

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

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

【问题讨论】:

    标签: android android-appwidget android-remoteview


    【解决方案1】:

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

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

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

    不总是 res->layout 吗?

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

    你会用什么作为包名?

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

    为什么需要这个?

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-10-12
        • 2018-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 2020-05-31
        相关资源
        最近更新 更多