Activity的生命周期 (Android review)
来源:互联网 发布:java开源用户管理系统 编辑:程序博客网 时间:2024/05/29 15:29
一、知识点
activity各个生命周期中各个函数常见的一些操作
1、onCreate() 初始化的操作 (设置布局 控件的初始化 )
2、onStart() //注册一些监听 (内容观察者)
3、onResume() 再次对数据进行查询
4、onPause() //数据的临时保存
5、onStop() //取消监听
6、onDestroy() //对资源进行回收 (cursor关闭 bitmap 进行回收)
这里还有两个方法是需要注意一下的:
7、onSaveInstanceState():在onResume()之后调用
8、onRestoreInstanceState(Bundle savedInstanceState) :在onResume()之前调用
9、onConfigurationChanged(Configuration newConfig) :当横竖屏切换的时候被调用
横竖屏切换的时候:
竖屏到横屏:activity首先被销毁,在创建一个新的activity
横屏到竖屏:activity首先被销毁,再创建一个新的activity,再把该activity销毁,再创建一个新的activity.(是由于输入法的影响)
7、 <activity
android:label="绗竴涓猘ctivity"
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden">
configChanges="orientation|keyboardHidden: 横竖屏切换的时候不会创建新的Activity
android:configChanges="orientation" : 横竖屏切换时都只创建和销毁一个activity。(默认是竖屏---》横屏:销毁一个,创建一个。横屏到竖屏:销毁一个,创建一个,销毁一个,创建一个。因为受到输入法的影响)
Activity的作用:
起显示作用,他是用来和用户交互的。也是一个view的容器
1 完整的生命周期:
onCreate() --> onStart() --> onResume() activiyt已经正常显示
点击回退键
onPause() --> onStop() --> onDetroy()
2 可视的生命周期
onCreate() --> onStart() --> onResume() activiyt已经正常显示
打开一个activity。该activity完全覆盖上一个activity
onPause() ---> onStop()
点击回退键
onRestart() --> onStart() ---> onResume()
点击回退键
onPause() --> onStop() --> onDetroy()
3 android:theme="@android:style/Theme.Dialog"
就可以把activity变成对话框的效果
onCreate() --> onStart() --> onResume() activiyt已经正常显示
打开一个activity。该activity没有完全覆盖上一个activity
onPause()
点击回退键
onResume()
二、生命周期图
3、示例代码
- public class MainActivityextends Activity {
- private Bitmap bitmap =null;
- private staticfinal String TAG = "MainActivity";
- // 初始化的操作 (设置布局 控件的初始化 )
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Log.i(TAG, " onCreate ");
- if(savedInstanceState !=null){
- int page = savedInstanceState.getInt("page");
- Log.i(TAG, " onCreate page " + page);
- }
- }
- //注册一些监听 (内容观察者)
- @Override
- protected void onStart() {
- // TODO Auto-generated method stub
- super.onStart();
- Log.i(TAG, " onStart ");
- }
- @Override
- protected void onRestart() {
- // TODO Auto-generated method stub
- super.onRestart();
- Log.i(TAG, " onRestart ");
- }
- //再次对数据进行查询
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- Log.i(TAG, " onResume ");
- }
- //数据的临时保存
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- Log.i(TAG, " onPause ");
- }
- //取消监听
- @Override
- protected void onStop() {
- // TODO Auto-generated method stub
- super.onStop();
- Log.i(TAG, " onStop ");
- }
- //对资源进行回收 (cursor关闭 bitmap 进行回收)
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- Log.i(TAG, " onDestroy ");
- //cursor.close();
- //bitmap.recycle();
- }
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- // TODO Auto-generated method stub
- super.onSaveInstanceState(outState);
- outState.putInt("page",50);
- Log.i(TAG, " onSaveInstanceState ");
- }
- @Override
- protected void onRestoreInstanceState(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onRestoreInstanceState(savedInstanceState);
- int page = savedInstanceState.getInt("page");
- Log.i(TAG, " onRestoreInstanceState page " + page);
- }
- //当横竖屏切换的时候被调用
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- // TODO Auto-generated method stub
- super.onConfigurationChanged(newConfig);
- if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
- Log.i(TAG, " 现在是横屏");
- }else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
- Log.i(TAG, " 现在是竖屏");
- }
- }
- public void open(View v){
- Intent intent = new Intent(this,Main2Activity.class);
- startActivity(intent);
- }
- }
- (Android review)Activity的生命周期
- Activity的生命周期 (Android review)
- Android 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的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- js中的函数function
- 有return的情况下try catch finally的执行顺序
- Lesson9 Manipulating Data
- Lesson10 Using DDL Statements to Create and Manage Tables
- 厦门在建商场坍塌,又是一个豆腐渣
- Activity的生命周期 (Android review)
- Atitit.研发管理---TOGAF架构跟 (ADM开发方法)总结
- Getting Started with Solr 4.9 and Django haystack
- ubuntu上搭建工作环境
- 不要用scanf函数!!!!
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
- 大家觉得百度改版后效果怎么样?有没有比原来的好
- 黑马程序员-------java基础之线程
- 佛祖保佑,永无BUG