Intent是Android程序中各组件之间进行交互的一种重要方式,一般用于活动之间的跳转,启动服务,发送广播等,不仅可以指明当前的组件想要执行的任务,还可以在不同的组件之间传递数据。
Intent用于活动挑中有两种用法:显式和隐式。
Intent显式用法很简单,建立两个或多个Activity,在需要点击跳转的组件下写入逻辑:
Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); 这里假设从MainActivity跳转至SencondActivity。
Intent隐式用法需要在待打开的页面配置下写入<intent-filter>,指定当前相应的action和category:
<intent-filter> <action android:name="目录.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
在进行跳转时,只需要将action写入新建Intent实例中:
Intent intent=new Intent("目录.ACTION_START"); startActivity(intent);category.DEFAULT是一种默认的category,在调用startActivity时已经添加,但是一个Intent中只能有一个action却可以有多个category,配置了其他category后要在intent实例中写出来。 Intent的隐式用法还可以打开安卓系统中的其他应用程序,只需要调用setData()方法并传入Uri对象,例如: Intent intent=new Intent(Intent.ACTION_DIAL); intent.setData(tel:10086); startActivity(intent);
并且在AndroidManifest.xml文件中进行配置:
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFALUT"/> <data android:scheme="tel"/> </intent-filter> </activity>