当前位置:首页 > 第一行代码Android学习笔记完全版
之后,在上一个activity中,重写onActivityResult()方法。
同样的,如果在第二个activity中,是按返回键返回的,可以在第二个activity中,重写onBackPressed()方法返回数据,方法同上。
四、activity的生命周期 1、活动状态
运行状态:在栈顶时
暂停状态:不可操作,但可见 停止状态:完全不可见 销毁状态:从栈中被移除
2、activity生存期
完整生存期:onCreate()?onDestory() 可见生存期:onStart()?onStop() 前台生存期:onResume()?onPause()
活动启动onCreate()onStart()返回上一个活动onRestart()onResume()Activity运行中Kill Process返回上一个activity另一个activity来到前台另一个优先级更高的程序需要内存onPause()Activity不可见onStop()Activity被销毁onDestory()Activity关闭
3、activity被回收数据保存
activity中提供了一个onSaveInstanceState()的方法,该方法会携带一个bundle类型参数,bundle可以保存各种信息。 protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); String savedata=\ outState.putString(\ }
如何恢复数据呢?
在onCreate()方法中,传入的参数为Bundle savedInstanceState,利用这恢复数据。 String data=savedInstanceState.getString(―saved‖);
五、activity的启动模式
四种启动模式,可以在
singleTop:打开activity,检查栈顶是否已经存在该activity,存在了就不创建。不存在才创建。不过,如果该activity不在栈顶,但也存在,则也会重新创建一个。 singleTask:检查整个返回栈,如果存在某个activity,则不会重新创建。
singleInstance:创建一个activity,重新在一个新的返回栈(或Task)中创建,该activity与其他activity不在同一个Task中,其他程序也可以调用这个activity的实例。
六、activity最佳实践
1、知道当前页面是哪一个activity
新建一个BaseActivity extents Activity,其中在onCreate()中打印该activity的信息 Log.i(―BaseActivity‖,getClass().getSimpleName()); //获得类名 然后,所有activity都extents BaseActivity即可
2、随时随地退出程序
当打开很多activity之后,退出程序需要一直按Back,很麻烦。
首先,新建一个activity管理类,实现所有的activity的添加、删除和finish()。
public class ActivityCollector { public static List
然后,修改BaseActivity,在onCreate()中添加this,onDestory()中移除this protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Log.i(\ ActivityCollector.addActivity(this); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); ActivityCollector.removeActivity(this); }
共分享92篇相关文档