【发布时间】:2012-01-22 12:13:21
【问题描述】:
本教程说要在 XML intent-filter 内的操作元素中使用 android.appwidget.action.APPWIDGET_UPDATE。
然而,
这是字符串常量 ACTION_APPWIDGET_UPDATE 的值 android.appwidget.AppWidgetManager
-- 我是 Android 新手,但在一般编程中,鼓励使用符号常量而不是文字值。
我可以在我的 xml 文件中使用 android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE 而不是“android.appwidget.action.APPWIDGET_UPDATE”吗?
这是一个很好的实践问题,而不是一个让我不解的问题。
【问题讨论】:
-
我认为如果您将 android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE 放入您的 xml 文件中,您的 appwidget 将不会收到通知。 intent-filter 需要一个字符串来执行操作,您不能引用代码中定义的常量。
-
是的,我认为答案是Android开发中使用的XML文件不支持不直接使用字符串文字的“最佳实践”。直接使用字符串文字,这并不理想,并且会受到关于在任何程序中直接使用字符串文字的常见批评。
-
也许这是最佳实践。正如我在 Android 意图的源代码中发现的那样,动作被定义为静态最终字符串。它们未在配置和 xml 文件中定义。也许这是因为每次从文件中读取信息是一个很大的惩罚。但是,在您的项目中,您可以在 XML 文件中定义它们。但在我看来,最好将它们定义为代码中的最终静态字符串。
标签: android android-widget android-manifest intentfilter