一,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{@Overridepublic 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;    } @Overrideprotected void onRestart() {// TODO 自动生成的方法存根 System.out.println("firstActivity-->onRestart");super.onRestart();} @Overrideprotected void onDestroy() {// TODO 自动生成的方法存根 System.out.println("firstActivity-->onDestroy");super.onDestroy();}@Overrideprotected void onPause() {// TODO 自动生成的方法存根 System.out.println("firstActivity-->onPause");super.onPause();}@Overrideprotected void onResume() {// TODO 自动生成的方法存根 System.out.println("firstActivity-->onResume");super.onResume();}@Overrideprotected void onStart() {// TODO 自动生成的方法存根 System.out.println("firstActivity-->onStart");super.onStart();}@Overrideprotected 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onCreate");super.onCreate(savedInstanceState);}@Overrideprotected void onDestroy() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onDestroy");super.onDestroy();}@Overrideprotected void onPause() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onPause");super.onPause();}@Overrideprotected void onRestart() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onRestart");super.onRestart();}@Overrideprotected void onResume() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onResume");super.onResume();}@Overrideprotected void onStart() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onStart");super.onStart();}@Overrideprotected void onStop() {// TODO 自动生成的方法存根System.out.println("SecondActivity--->onStop");super.onStop();}}


然后启动程序,如图:



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


onCreate

OnStart

OnResume

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

Activity能被我们看到的时候

Activity可以获得用户焦点的时候被调用


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




Android——Activity的生命周期_第1张图片


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


OnPause

OnStop

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

:通常保存当前Activity的数据

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


接着点击back按钮,



Android——Activity的生命周期_第2张图片



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


OnDestory

OnRestart

销毁Activity

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

1,调用activityfinish方法

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

重新调用paused activity



小结:



Android——Activity的生命周期_第3张图片




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








更多相关文章

  1. Android常用方法总结
  2. Android追加写入文件的几种方法
  3. android xml布局中TextView文字居中方法
  4. Android service生命周期详解
  5. android 动态布局setLayoutParams方法设置
  6. Android保持背光常亮的设置方法
  7. Android中定时器的3种实现方法
  8. Android与服务器通信的方法之一-->TCP

随机推荐

  1. Android----View
  2. android整合--UI基本控件Button,ImageBut
  3. 自定义菜单
  4. Android之AIDL跨进程抛异常的原理
  5. android耳机插入\拔出事件上报流程
  6. Android(安卓)GPS ——AGPS源码分析及配
  7. RecyclerView调用smoothScrollToPosition
  8. Android不同层次开启硬件加速的方式
  9. android lcd横竖屏幕配置
  10. Android(安卓)自定义View 画圆 画线