博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——Activity的生命周期
阅读量:7217 次
发布时间:2019-06-29

本文共 3655 字,大约阅读时间需要 12 分钟。

  

一,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里面页面生命周期。感觉比那个简单点儿。

你可能感兴趣的文章
WinForm动态添加控件及其事件(转)
查看>>
Oracle数据库入门——目录结构
查看>>
makeBackronym
查看>>
应付发票审批 Hold and Release Names
查看>>
基于struct2完整的用户登录
查看>>
Socket的连接问题
查看>>
Codeforces 429 A. Xor-tree
查看>>
Spring+iBatis+Atomikos实现JTA事务
查看>>
lufylegend库 鼠标事件 循环事件 键盘事件
查看>>
通过浏览器调用Android要么iOS应用
查看>>
在线支付接口开发总结
查看>>
mysqldump导出部分数据的方法: 加入--where参数
查看>>
【Java】Java处理double相加的结果异常
查看>>
546A. Soldier and Bananas
查看>>
hdu4770:Lights Against Dudely(回溯 + 修剪)
查看>>
Objective-c:NSFileHandle类,创建流对象,对文件进行写入、读取的操作
查看>>
MS-SQL 删除数据库所有的表
查看>>
PHP+lghttpd + postgresql 环境搭建
查看>>
jQuery复习笔记
查看>>
android 设置头像以及裁剪功能
查看>>