zoukankan      html  css  js  c++  java
  • Android_Activity生命周期

    通过前面一段时间的学习,我们很清楚我们的一系列操作都离不开的一个东西,就是我们的activity 。接下来我们对 Activity 进行系统的总结。

    Activity 的四种基本状态

    1.运行态(Running)

      Activity 处于屏幕最前端,用户可见且获得焦点。

    2.暂停态(Paused)

      Activity被置于后台,用户可见,但失去焦点

    3.停止态(Stopped)

      Activity 被新的Activity覆盖失去焦点,用户不可见。

    4.终止态(Destroyed)

      Activity被系统终止,资源被回收。

     Activity 的生命周期

       onCreate: 创建Activity 的实例对象的方法
       onStart : 启动当前的 Activity 实例的方法
       onResume: 如果该方法执行,页面的实例就和用户可以进行交互
       onPause: 如果该方法执行,页面就和用户不再交互失去焦点,页面仍旧可见 在内存当中
       onStop:页面就和用户完全不可见
       onDestroy: 销毁当前的 Activity 的页面实例
       onRestart:将至于后台的应用程序的Activity 重新显示在前台的时候被调用

    注意:

      Activity 的生命周期方法都是成对出现的。onStart----onStop  ; OnCreate -----onDestroy ;onResume----onPause

      onResume----onPause 方法会比其他的生命周期方法执行的比较频繁,所以一般在这两个方法中写的代码较少

    这里是官网总结的activity 运行流程图

    接下来,我们还是上代码带大家走一遍,感受下activity 的生命周期。

    我们直接创建一个项目,利用logcat 观察他的生命周期。

     1 package com.example.testactivitylife;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.util.Log;
     6 import android.view.Menu;
     7 import android.view.MenuItem;
     8 
     9 
    10 public class MainActivity extends Activity {
    11 
    12     //页面实例被创建的方法
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.activity_main);
    17         Log.i("TAG", "onCrate方法被执行");
    18         
    19     }
    20     @Override
    21     protected void onStart() {
    22         Log.i("TAG", "onStart方法被执行");
    23         super.onStart();
    24     }
    25     
    26     @Override
    27     protected void onPause() {
    28         Log.i("TAG", "onPause方法被执行");
    29         super.onPause();
    30     }
    31     @Override
    32     protected void onResume() {
    33         Log.i("TAG", "onResume方法被执行");
    34         super.onResume();
    35     }
    36     @Override
    37     protected void onStop() {
    38         Log.i("TAG", "onStop方法被执行");
    39         super.onStop();
    40     }
    41     @Override
    42     protected void onDestroy() {
    43 
    44         Log.i("TAG", "onDestroy方法被执行");
    45         super.onDestroy();
    46     }
    47     @Override
    48     protected void onRestart() {
    49         Log.i("TAG", "onRestart方法被执行");
    50         super.onRestart();
    51     }
    52 }

     以上就是activity 的整个生命周期。我了解的大概就是这些。后续我们会在实际案例中,将我们的代码合理的放置于我们的方法中,提高我们程序的运行效率等。

    如有不适之处,望各位大神提点出来。[微笑]

  • 相关阅读:
    说说你最欣赏的数据可视化的案例
    手游破解手段介绍及易盾保护方案
    基于开源,强于开源,轻舟微服务解决方案深度解读
    八月暑期福利,10本Python热门书籍免费送!
    Android图片异步加载的方法
    和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧。因为,很多PCI的例子都是对S5933,就连微软出版的《Programming the Microsoft Windows Driver Model》都提供了一个完整的S5933的例子。 在这篇有关DDK的开发论文里。
    VS插件开发——格式化变量定义语句块
    VS2005+WINDDK+Driver Studio 3.2个人总结
    Winsock编程基础介绍 .
    ShareSDK for Android 只有新浪微博分享
  • 原文地址:https://www.cnblogs.com/heyhhz/p/6121767.html
Copyright © 2011-2022 走看看