您的位置:首页 > 其它

Intent的使用

2016-07-09 22:40 309 查看
复习了下基础知识,仅仅只是为了记录一下。

Intent分为两种,一种是显式Intent,一种是隐式Intent。

显式Intent

直接指定类名的,称为显式Intent。

第一种:

//显式Intent
Intent intent=new Intent(this,Acitvity2.class);
startActivity(intent);


第二种:(指定了包名,指定了类名,这是显式的。)

使用Intent.setComponent(new ComponentName(”全包名”,”全类名”)),因为在5.0之前可以使用action启动,但是在5.0之后只能用这种方法启动了。

Intent intent=new Intent();
intent.setComponent(new ComponentName("com.example.kaka.intenttest","com.example.kaka.intenttest.Acitvity2"));
startActivity(intent);


隐式Intent:

不指定直接类名,通过其他使用目标类的方法,称为隐式Intent。

清单文件中的Activity设置Action

<activity android:name=".Acitvity2">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"></category>
<action android:name="com.example.kaka.intentest.intent.action.activity2"></action>
</intent-filter>
</activity>


Intent intent=new Intent("com.example.kaka.intentest.intent.action.activity2");
startActivity(intent);


Intent选择过滤器:

Intent通过Action启动的情况下,如果有多个Activity的Action相同的话会弹出一个选择器。如图。



那么在具有相同Action的情况下如果不出现选择器的话,还可以添加别的筛选器。

例如:清单文件中的Acticity添加一个data标签,设置一个scheme,取个名。

<activity
android:name=".Acitvity2"
android:label="Activity2">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />

<action android:name="com.example.kaka.intentest.intent.action.activity2" />
<data android:scheme="activity2"></data>
</intent-filter>
</activity>


代码:Intent多传个Uri.parse(),注意后面要加个冒号,这样就会直接跳转到要跳转的Activity2

Intent intent=new Intent("com.example.kaka.intentest.intent.action.activity2", Uri.parse("activity2:"));
startActivity(intent);


通过浏览器链接打开Acitvity

在复习的时候发现有这东西,暂时没真正用过。。。

方法:

清单文件中Activity的设置:(scheme是起一个协议的名字,自定义。)

<activity
android:name=".Acitvity2"
android:label="Activity2">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="app"></data>
</intent-filter>
</activity>


写个Html页面:(href里面的://前的app就是Activity里面scheme设置的协议)

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="app://hell word">lauch Activity</a>
</body>
</html>


手机上的浏览器打开就可以启动Activity。

只是稍微整理一下。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Intent activity