Android开发-Intent基础使用
Intent用途
1.启动Activity 将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必要的数据。
2.启动Service将Intent对象传递给startService()方法或bindService()方法以启动一个Service,该Intent对象包含了要启动的Service的信息及其他必要的数据。
3.发送广播广播是一种所有App都可以接收的信息。Android系统会发布各种类型的广播,比如发布开机广播或手机充电广播等。我们也可以给其他的App发送广播,可以将Intent对象传递给sendBroadcast()方法或sendOrderedBroadcast()方法或sendStickyBroadcast()方法以发送自定义广播。
Intent两种类型及使用方法
intent有两种类型:explicit(显式)的和implict(隐式)。
1.explicit(显式)
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
- implict(隐式)
Intent intent=new Intent();
intent.setAction("cn.itcast.start_activity");
startActivity(intent);
其中setAction中的cn.itcast.start_activity为AndroidMainfeist.xml文件中对要打开的Activity的action的name,使用隐式必须在AndroidMainfeist.xml文件中编写对应activity的intent-filter
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" />
<activity android:name=".ThirdActivity">
<intent-filter>
<action android:name="cn.itcast.start_activity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
//Second为显示调用无需写intent-filter
//Third为隐式调用要编写intent-filter