android中的Inetent 有两种形式,一种为显式Intent另一种为隐式Intent,接下来分别解释一下显式Intent和隐式Intent
1.显式Intent
顾名思义,该Intent的指向性明确,例如以下代码:
Intent intent = new Intent(MainActivity.this,NextActivity.class);
该Intent的意图是实现由活动MainActivity向活动NextActivity的跳转,意向很明确
startActivity(intent);
2.隐式Intent
该Intent没有指明需要向某一个特定的活动跳转,只是给出了相应的action、category以及data,例如
Intent intent = new Intent (Intent.ACTION_DIAL)//ACTION_DIAL是android自带的动作,表示拨号
intent.setData(Uri.parse("tel:10010"));
startActivity(intent)
上面代码实现了向10010拨打电话的跳转。
我们还可以为自己的活动定义自己的action和category。假设创建了除主界面以外的第二个界面NextActivity,并且在工程的AndroidManifest.xml中申明NextActivity时,在过滤器器中添加自定义的action和category代码如下:
<activity android:name=".NextActivity"> <intent-filter> <action android:name="myAction"></action> <category android:name="android.intent.category.DEFAULT"/>该代码一定需要书写 <category android:name="myCategory"/> <data android:scheme="http"/> </intent-filter> </activity>
如此申明以后,在用Intent进行跳转时,可以如下
Intent intent = new Intent ("myAction")
intent.addCategory("myCategory");
startActivity(intent)