Android基础学习——Activity生命周期
来源:互联网 发布:下载地毯设计软件 编辑:程序博客网 时间:2024/06/04 19:46
在Activity会按需重载一些方法,onCreate是免不了的,在一个Activity正常的启动过程中,他们被调用的顺序是:
onCreate->onStart->onResume
在Activity被销毁的顺序是:
onPause->onStop->onDestroy
这是一个完整的生命周期。
如果程序正在运行的时候来电话了,Activity会被中止:onPause->onStop。
Activity恢复的时候:onstart->onResume。
如果打断程序的是一个Theme为Translucent或者Dialog的Activity,那么Activity中止的时候只是:onPause。
恢复的时候:onResume。
这几个方法中系统在做什么:
onCreate: 在这里创建界面,做一些数据的初始化工作;
onStart: 到这一步变成用户可见不可交互的;
onResume: 到这里变成和用户可交互的(Activity栈系统通过栈的方式管理这些Activity的最上面,运行完全弹出栈,则回到上一个Activity)
onPause:到这一步是可见不可交互的,系统会停止动画(这里保存一些数据,在onResume里读出来。注意:这个方法里做的事情时间要短,因为下一 个activity不会等到这个方法完成才启动)
onStop:变得不可见,被下一个Activity覆盖了。
onDestroy:这是Activity被销毁的最后一个调用的方法,可能是外面类调用了finish方法,或者是被系统回收掉了。可用isFinishing()来判断。如果有ProgressDialog在线程中转动,在onDestroy里把它cancel。不会等结束的时候,调用的Dialog的cancel方法会抛异常。
onPause,onStop,onDestroy,三种状态下Activity都有可能被系统回收掉。
为了保证程序的正确性,要在onPause里写上持久层操作的代码,将用户编辑的内容都保存到存储介质上。
实际工作中会因为生命周期的变化带来很多的问题,比如应用程序开启了线程,这时候被中断了,一般采用数据回滚,来处理线程。因为Activity可能被回收,所有线程中使用的变量和一些界面元素就需要注意,我一般是采用Android的Handler来处理线程和界面交互的问题。
这些方法都是被ActivityManagerService 回调的
- Android基础学习——Activity生命周期
- Android基础——Activity生命周期
- Android基础——Activity生命周期
- Android基础——Activity生命周期解读
- 【Android基础】Activity深入理解(一)——Activity生命周期
- android 基础学习(3)-----activity的生命周期
- Android基础学习笔记:Activity的生命周期
- android学习日记——Activity生命周期
- Android学习——Activity的生命周期
- Android学习笔记——Activity生命周期
- android基础--Activity生命周期
- android基础-Activity-生命周期
- Android基础--Activity生命周期
- Android基础:Activity生命周期基础
- android学习:activity生命周期
- android-activity生命周期学习
- Android——Activity生命周期
- Android——Activity生命周期
- (JavaScript)调色板
- 泡沫经济中的移动开发者
- ASP.NET Auto Deployment with MSBuild
- swift 学习<二> if分支, for循环,
- Android ListView性能优化,异步加载图片
- Android基础学习——Activity生命周期
- 关于回调函数的一些问题解决
- JAPX(JAVA API for xml)中dom解析思路
- HDU 1106 排序
- ::运算符用于区别局部变量和全局变量
- 十六进制序列
- Memcached内存管理分析
- C++的const类成员函数-精华版
- lintcode-颠倒整数