先说一下activity的几种启动方式
声明:博客中的知识点比较浅陋,也有可能有错误的地方,写博客的原因主要是方便自己梳理知识点。万事总要有个开始的地方,我也想像那些博客大神一样,慢慢的增长自己的知识,慢慢与大家相互交流。
一.显示意图
注意:在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。
android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。
总体来说它的主要作用是:是否支持其它应用调用当前组件。
①他可以通过显示意图来跳转
Intent intent = new Intent(this,SecondActivity.class);
this.startActivity(intent);
可以通过intent来传递参数
拿到intent里的参数
String infoString = getIntent().getStringExtra(RETURN_INFO);
②通过包名和类名跳转
Intent intent = new Intent(); intent.setClassName(“com.example.minyang.esuditest”,”com.example.minyang.esuditest.SecondActivity”);
startActivity(intent);
一般用于启动自己app的activity或者另一个app里的activity.注意启动之前做判断,手机中是否存在在该activity。
③通过ComponnetName跳转
Intent intent = new Intent(); intent.setClassName(“com.example.myapplication”,”com.example.myapplication.MainActivity”);
intent.setComponent(new ComponentName(“com.example.myapplication”,”com.example.myapplication.MainActivity”));
startActivity(intent);
二.隐式意图
①调用系统的activity
Intent intent = new Intent();
intent.setAction(“android.intent.action.SENDTO”);// 发送信息的动作
intent.addCategory(“android.intent.category.DEFAULT”);// 附加信息
intent.setData(Uri.parse(“sms:10086”));// 具体的数据,发送给10086
startActivity(intent);
②自定义隐式意图
Intent intent = new Intent();
intent.setAction(“action”);
intent.addCategory(“android.intent.category.DEFAULT”);
intent.setDataAndType(Uri.parse(“loonggg://www.baidu.com/person”),
“person/people”);
startActivity(intent);
清单文件