Activity 两种启动方式

2020-07-25  本文已影响0人  资本家大恶人

在Activity的跳转中

Activity的跳转需要创bai建duIntent对象,通过设zhi置intent对象的参数指dao定要跳转Activity
通过设置Activity的包名和类名实现跳转,称为显式意图
通过指定动作实现跳转,称为隐式意图

显式意图

Intent intent = new Intent();
intent.setClass(this, SecondActivity.class);
startActivity(intent);
Intent intent = new Intent();
//启动系统自带的拨号器应用
intent.setClassName("com.android.dialer", "com.android.dialer.DialtactsActivity");
startActivity(intent);

隐式意图

Intent intent = new Intent();
//启动系统自带的拨号器应用
intent.setAction(Intent.ACTION_DIAL);
startActivity(intent);

<intent-filter >
<action android:name="com.itheima.second"/>
<data android:scheme="asd" android:mimeType="aa/bb"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

获取通过setData传递的数据

//获取启动此Activity的intent对象
Intent intent = getIntent();
Uri uri = intent.getData();

显式意图和隐式意图的应用场景

* 显式意图用于启动同一应用中的Activity
* 隐式意图用于启动不同应用中的Activity
* 如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个

上一篇下一篇

猜你喜欢

热点阅读