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>