理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用相似;另外一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,这种方式与函数调用差异比较大,有利于下降发送者和接收者之间的耦合。另外Intent除了发送外,还可用于广播.android
显示调用 1.Intent intent = new Intent(); intent.setClass(A.this,B.class); //intent.setClassName("com.view","com.view.B");前者是A的包名,后者是B的代包类名app
startActivity(Intent);函数
隐式调用:private static String MY_ACTION = "com.view.my_action";this
Intent intent = new Intent(); intent.setAction(MY_ACTION);spa
或者// Intent intent = new Intent(MY_ACTION);xml
startActivity(Intent);对象
隐式调用注意不仅是在AndroidManifest.xml文件中声明,还要加上intent-filterstring
在B类的activity中加上:it
<intent-filter>io
<action android:name="com.view.my_action"/> <!-- 自定义 -->
</intent-filter>
加上这句话就能够跳转到B类了
若是是想启动另一个应用程序,如B类是在另一个应用程序的入口,在其activity中再另外加上一个intent-filter
<activity android:name=".B" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.view.my_action"/>
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>