启动和结束
逐一显示的活动界面,类似于PS中的层
Activity启动
Intent intent = new Intent(); //意图
intent.setClass(MainActivity.this, MainActivity2.class); //从A跳转到B
startActivity(intent);
Activity关闭,也可以是返回之前的界面
finish();
生命周期
跳转,intent跳转到其他activity执行到Onstop()
返回会走 onRestart() ->onStart()
没有完全消失时返回就会走OnPause()->OnResume()
退出切换应用时会走左边的路,重新创建应用
一般在onCreate中创建活动,吧页面加入内存。
在onResume中再加入动画。
启动模式
类似于任务栈,先进先出。(默认下)
几种常见的启动方式。
FLAG_ACTIVITY_NEW_TASK :为Activity指定“singleTask”启动模式,其效果和在XML中指定启动模式一样
FLAG_ACTIVITY_SINGLE_TOP :为Activity指定“singleTop”启动模式,其效果和在XML中指定启动模式一样
FLAG_ACTIVITY_CLEAR_TOP :当Activity启动时,在同一任务栈中所有位于它上面的Activity都要出栈。这个模式需要和FLAG_ACTIVITY_NEW_TASK 配合使用,被启动Activity实例如果已经存在,系统就会调用它的onNewIntent.
FLAG_EXCLUDE_FROM_RECENTS :此Activity不会出现在历史Activity列表中,不希望用户通过历史列表回到Activity。其效果和在XML中指定Activity的属性:android:excludeFromRecents=”true” 一样
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, MainActivity2.class);
//保证唯一界面
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//清空栈,然后开启一个新的栈,类似于登录界面仅显示一次
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});