zoukankan      html  css  js  c++  java
  • Android——Activity的生命周期


      

    一,Demo測试Activity的生命周期


          写两个Activity:


     

    package com.example.activity_04;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class FirstActivity extends Activity {
    
    	private Button myButton=null;
    	
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        	System.out.println("firstActivity-->onCreate");
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_first);
            myButton=(Button)findViewById(R.id.myButton);
            myButton.setOnClickListener(new BtnClick());
    
        }
    
        class BtnClick implements OnClickListener{
    
    		@Override
    		public void onClick(View arg0) {
    			// TODO 自己主动生成的方法存根
    			Intent intent=new Intent();
    			intent.setClass(FirstActivity.this,SecondActivity.class );
    			FirstActivity.this.startActivity(intent);
    		}
        	
        	
        }
    	@Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.first, menu);
            return true;
        }
    
    	 @Override
    	protected void onRestart() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onRestart");
    		super.onRestart();
    	}
    	 
    
    	@Override
    	protected void onDestroy() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onDestroy");
    		super.onDestroy();
    	}
    
    
    	@Override
    	protected void onPause() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onPause");
    		super.onPause();
    	}
    
    
    	@Override
    	protected void onResume() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onResume");
    		super.onResume();
    	}
    
    
    	@Override
    	protected void onStart() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onStart");
    		super.onStart();
    	}
    
    
    	@Override
    	protected void onStop() {
    		// TODO 自己主动生成的方法存根
    		 System.out.println("firstActivity-->onStop");
    		super.onStop();
    	}
        
        
    }
    



    package com.example.activity_04;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class SecondActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onCreate");
    		super.onCreate(savedInstanceState);
    	}
    
    	@Override
    	protected void onDestroy() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onDestroy");
    		super.onDestroy();
    	}
    
    	@Override
    	protected void onPause() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onPause");
    		super.onPause();
    	}
    
    	@Override
    	protected void onRestart() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onRestart");
    		super.onRestart();
    	}
    
    	@Override
    	protected void onResume() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onResume");
    		super.onResume();
    	}
    
    	@Override
    	protected void onStart() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onStart");
    		super.onStart();
    	}
    
    	@Override
    	protected void onStop() {
    		// TODO 自己主动生成的方法存根
    		System.out.println("SecondActivity--->onStop");
    		super.onStop();
    	}
    	
    }
    


    然后启动程序,如图:



          能够看到第一个Activity以此被调用的方法。


    onCreate

    OnStart

    OnResume

    第一次创建时调用,能够配置使用的layout文件

    Activity能被我们看到的时候

    Activity能够获得用户焦点的时候被调用

     


         之后点击第一个Activiyt上的button,跳转到第二个Activity:




      


         发现第一个Activity的OnPause方法被调用,接着是初始化一个新的Activity被调用的方法,当第二个Activity出现之后,第一个Activity的OnStop方法被调用。


    OnPause

    OnStop

    应用程序启动另外一个activity的时候,会调用第一个activityOnPause方法

    :通常保存当前Activity的数据

     

    Activity处于不可见的时候会调用第一个activityOnstop方法,假设新出来的activity不全然遮挡住第一个activity,则不会调用

     


            接着点击backbutton,





    注意这里第一个Activity起来之后先调用的是OnRestart方法。


    OnDestory

    OnRestart

    销毁Activity

     

    一般两种情况会调用这种方法:

    1,调用activityfinish方法

    2,当系统资源不够用的时候

     

    又一次调用paused activity

     



    小结:






          Activity调用的生命周期感觉相似.NET里面页面生命周期。感觉比那个简单点儿。








  • 相关阅读:
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---53
    《Linux命令行与shell脚本编程大全 第3版》Linux命令行---51
    activity-启动动画的设定(下面弹出出现,弹入下面消失)
    TextView-显示自己添加的字体样式
    visibility-控件的显示跟隐藏设置
    RelativeLayout-属性大全
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6759112.html
Copyright © 2011-2022 走看看