应用的所有activity都必须在manifest配置文件中声明,这样操作系统才能够找到它们。
一个activity启动另一个activity最简单的方式是使用startActivity方法
public void startActivity(Intent intent)
调用请求发送给了操作系统的ActivityManager,ActivityManager负责创建Activity实例并调用其onCreate(Bundle)方法。
intent对象是component用来与操作系统通信的一种媒介工具。在GeoQuiz应用中,intent用来告诉ActivityManager该启动哪个activity,因此可使用以下构造方法:
public Intent(Context packageContext, Class<?> cls)
activity间的数据传递
要将extra数据信息出添加给intent,需要调用Intent.putExtra(...)方法。
activity可能启动自不同的地方,应该在获取和使用extra信息的activity哪里,为它定义键,记得使用包名修饰extra数据信息,可避免来自不同应用的extra间发生命名冲突。
public class CheatActivity extends AppCompatActivity { private static final String EXTRA_ANSWER_IS_TRUE = "com.example.android.geoquiz.answer_is_true"; ... }
获取extra信息
Activity.getIntent()方法返回了由startActivity(Intent)方法转发的Intent对象。
mAnswerIsTrue=getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE,false);