Activity的几种启动方式

以下内容整理自互联网,仅用于个人学习


1. Intent可传递如下几种类型数据

  • 八大基本类型及其对应的数组,CharSequence(String)及其数组
  • 传递一个Bundle
  • 传递Serializable对象
  • Parcelable及其对应数组
  • Intent
  • ArrayList,泛型参数类型为:、、

2. 使用Intent启动Activity的几种方式

2.1 直接通过class对象

Intent intent = new Intent(this, SecondActivity.class); 
startActivity(intent);

2.2 通过包名+类名

Intent intent = new Intent(); 
//第一个参数是包名称,第二个参数是要启动的类的全限定名称 
intent.setClassName("com.ljr.example.test", "com.ljr.example.test.SecondActivity"); 
startActivity(intent);

2.3 通过包Context+类名

Intent intent = new Intent(); 
//第一个参数是包Context,可以直接传入Activity即可,第二个参数是要启动的类的全限定名称 
intent.setClassName(this, "com.ljr.example.test.SecondActivity"); 
startActivity(intent);

2.4 通过ComponentName

Intent intent = new Intent(); 
//第一个参数是包名称,第二个参数是要启动的类的全限定名称 
ComponentName cn = new ComponentName("com.ljr.example.test", "com.ljr.example.test.SecondActivity"); 
intent.setComponent(cn); 
startActivity(intent);

2.5 通过隐式方式

Intent intent = new Intent(); 
intent.addCategory(Intent.CATEGORY_DEFAULT); 
intent.addCategory("com.ljr.example.second"); 
intent.setAction("com.ljr.example.action"); 
startActivity(intent);

你可能感兴趣的:(Activity的几种启动方式)