我正在阅读意图&意图过滤器。我得到了以下代码:
活动:
Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
startActivity(i);
在Manifest中:
<activity android:name="com.example.intentdemo.CustomActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="com.example.intentdemo.LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
</activity>
我的问题是 - 我不应该在意图内声明 android.Intent.ACTION_VIEW ,而不是 android.content.Intent.ACTION_VIEW 吗?
答案 0 :(得分:1)
android.content.Intent.ACTION_VIEW
指的是类ACTION_VIEW
中常量android.content.Intent
的名称。这个常量的值是“android.intent.action.VIEW”。因此存在差异。
答案 1 :(得分:0)
如果您看到Intent
类的源代码,则ACTION_VIEW
是String
常量,其值为"android.intent.action.VIEW"
...
public static final String ACTION_VIEW = "android.intent.action.VIEW";
所以两者都指的是同一个值"android.intent.action.VIEW"
...
答案 2 :(得分:0)
您在android.intent.action.VIEW
和android.Intent.ACTION_VIEW
中感到困惑。它们都完全不同。
您使用的方式是 IMPLICIT INTENT
这些意图不命名目标,组件名称的字段留空。隐式意图通常用于激活其他应用程序中的组件。
Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
startActivity(i);
<强> ACTION 强>
Intent
object是一个字符串,用于命名要执行的操作 - 或者,就广播意图而言,是发生并正在报告的操作。该操作很大程度上决定了意图对象的其余部分的结构。 Intent类定义了许多与不同意图相对应的动作常量。查看Android Intent Standard Actions
Intent对象中的操作可以通过setAction()
方法设置,并由getAction()
读取。