1.BaseActivity里面可以干什么
定义一个Context
定义一个TAG
记录当前的Activity名字getClass().getSimpleName();
2.Activity里面的几个重载方法
//完整生存周期
onCreate() 首次创建Activity时
onDestroy() 在Activity销毁之前
//可见生存周期
onStart() 在Activity由不可见变为可见时
onStop() 在Activiy由可见变为完全不可见时(如被一个新的Activity完全覆盖)
//前台生存周期
onResume() 在Activity由不在栈顶&&任然可见==》变为在栈顶,可见时候
onPause() 在Activity离开栈顶但仍然可见时(如被一个Dialog部分遮挡)
//完整生存周期
onCreate() 首次创建Activity时
onDestroy() 在Activity销毁之前
//可见生存周期
onStart() 在Activity由不可见变为可见时
onStop() 在Activiy由可见变为完全不可见时(如被一个新的Activity完全覆盖)
//前台生存周期
onResume() 在Activity由不在栈顶&&任然可见==》变为在栈顶,可见时候
onPause() 在Activity离开栈顶但仍然可见时(如被一个Dialog部分遮挡)
onRestart() 由停止状态变为运行状态
3.Activity的启动模式
有4种启动模式,分别为normal、singleTop、singleTask和singleInstance模式,默认为normal。
修改方法:在AndroidManifest.xml的<Activity 标签之后添加android:launchMode="singleTop"
normal模式:相当与一个普通的JavaBean, 可重复创建
singleTop模式:在启动Activity时如果发现栈顶已经是该Activity,则不会再创建新的实例
singleTask模式:相当于Singleton,不论是否在栈顶,都只存在一个实例
singleInstance模式:也是单例,但存放在单独的栈中,用于两个APP共享Activity,进行跳转
4.手工管理Activity
建立一个类用于存放并管理Activity,并提供addActivity、removeActivity、finishAll()这样的方法
在BaseActivity的的onCreate()方法中调用addActivity(),在onDestroy中调用removeActivity()方法
一键销毁所有Activity并Kill进程,就完成了APP的退出
5.启动Activity的参数
为了便于明确Activity之间传递的参数,可在被启动的Activity中(如SecondActivity)设置一个单独的方法,如start(),并给定所需参数。调用时候,用这样的方式
public void onClick(View v) {
SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
}