zoukankan      html  css  js  c++  java
  • android_Activity生命周期功能

    说明:初步activity 生命周期7功能。

    样本:于MainActivity我加了button,搬家button。跳到OtherActivity。控制台输出的观察。

    让我们来看看这些功能:


    他们的流程能够看看官网提供的流程图:


    以下这张金字塔型的图可能更直观一些:


    关看图没意思,看看程序执行起来的效果先。

    步骤:1、在MainActivity里面复写其它6个函数。而且定义一个OtherActivity类。在activity_main加入一个button,跳转到OtherActivity,并为OtherActivity定义一个布局文件Other.xml。(这个在上一篇已经说过方法了,在这里就不再反复了。)

    package com.away.b_02_lifecycle;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
    
    	private Button button; 
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		button = (Button) findViewById(R.id.Button);
    		button.setOnClickListener(new ButtonListener());
    		System.out.println("MainActivity:OnCreate");
    	}
    
    	class ButtonListener implements OnClickListener {
    		@Override
    		public void onClick(View v) {
    			Intent intent = new Intent();
    			intent.setClass(MainActivity.this, OtherActivity.class);
    			startActivity(intent);
    		}
    	}
    
    	@Override
    	protected void onDestroy() {
    		super.onDestroy();
    		System.out.println("MainActivity:onDestroy");
    	}
    
    	@Override
    	protected void onPause() {
    		super.onPause();
    		System.out.println("MainActivity:onPause");
    	}
    
    	@Override
    	protected void onRestart() {
    		super.onRestart();
    		System.out.println("MainActivity:onRestart");
    	}
    
    	@Override
    	protected void onResume() {
    		super.onResume();
    		System.out.println("MainActivity:onResume");
    	}
    
    	@Override
    	protected void onStart() {
    		super.onStart();
    		System.out.println("MainActivity:onStart");
    	}
    
    	@Override
    	protected void onStop() {
    		super.onStop();
    		System.out.println("MainActivity:onStop");
    	}
    }
    
    2、在OhterActivity里面也复写7个函数。

    直接看结果:直接在控制台观察。启动MainActivity→OtherActivity的过程,函数的调用时机。

    启动MainActivity:


    点击button,跳转到OtherActivity:


    当点击后退button,退回到MainActivity的时候:


    这里涉及到back stack:

    1、启动第一个Activity,backstack里面就有了第一个Activity对象。


    2、启动第二个Activity,backstack里面添加了第二个Activity对象。


    3、启动第三个Activity。backstack里面添加了第三个Activity对象。假设按返回键。返回到第二个Activity。那么,在backstack里面第三个Activity对象就会被销毁。以此类推,backstack遵循先进先出的顺序。


    欢迎交流 http://blog.csdn.net/ycwol/article/details/39743617





    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    使用Windbg调试.Net应用程序 [转]
    jquery的$.extend和$.fn.extend作用及区别
    java获取ip
    在IDEA中使用MyBatis Generator逆向工程生成代码
    github结合TortoiseGit使用sshkey,无需输入账号和密码
    Mapped Statements collection does not contain value for com.xxxx.dao.impl.AreaDAOImpl.findByCode
    idea设置tomcat虚拟路径的两种方法
    spring MVC中传递的参数对象中包含list的情况
    PowerDsigner 16逆向工程导入mysql
    [C++]Qt文本操作(按行读写)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4755995.html
Copyright © 2011-2022 走看看