一.显示启动
Intent intent=new Intent(FirstActivity.this,SecondActivity.class); //Intent有多个构造函数的重载,其中一个是Intent(Context packageContext,Class<?>cls)。第一个参数Context要求提供一个启动活动的上下文, 第二个参数Class则是指定想要启动的目标活动,通过这个构造函数可以构建出Intent的"意图" startActivity(intent);
二.隐式启动
1.启动系统Activity
调用Intent(String action,Uri uri); //的一个参数action是Activity的别名,第二个参数Uri对象表示打开的路径,通过协议来具体确定 打开什么Activity eg: //打开一个浏览器的Activity Intent intent =new Intent(Intent.ACTION_VIEW,Uri.prase("http://www.baidu.com")); startActivity(intent);
2.启动普通Activity
<activity android:name=".MainActivity"> //意图过滤器 <intent-filter> <action android:name="com.xx.xxx"/> <category android:name="android.intent.category.DEFAULT "/> </inent-filter> </activity> ------------------------------------------------------------- Intent intent=new Intent(com.xx.xxx); startActivity(intent);
三.startActivityForResult启动Activity
Intent intent=new Intent(FirstActivity.this,SecondActivity.class); //参数:请求码 startActivityForResult(intent); //如果是通过startActivityForResult的方式启动了第二个Activity,当第二个Activity处理结束后,再回到当前Activity时,一定会自动回调onActivityResult,在该方法中我们可以处理第二个Acivity返回的结果,如拍照后的图片,图库中选取的图片。 @Override protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data){ //resultCode: 0,RESULT_CANCEL 取消 -1,RESULT_OK 正确处理完后返回 super.onActivityResult(requestCode,resultCode,data); }