深入Activity生命周期(二)

简介: 下面以Demo来帮助理解Activity生命周期,   布局文件: 只显示一个TextView和一个EditView,Activity代码如下: import android.

  下面以Demo来帮助理解Activity生命周期,

  布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:id="@+id/tv"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="so many people."
    />
    <EditText 
    android:id="@+id/et"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:hint="hello,world"
    />
</LinearLayout>

只显示一个TextView和一个EditView,
Activity代码如下:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;

public class AndroidOrientationtestActivity extends Activity 
{
    EditText et;
    TextView tv;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initUI();
        Log.i("my", "onCreate---");
    }

    private void initUI()
    {
        et = (EditText)findViewById(R.id.et);
        //打印控件的地址,对比切屏前的地址是否为同一个
        Log.i("my", "et="+et.toString());
        tv = (TextView)findViewById(R.id.tv);
      //打印控件的地址,对比切屏前的地址是否为同一个
        Log.i("my", "tv="+tv.toString());
    }
    
    @Override
    protected void onRestart()
    {
        // TODO Auto-generated method stub
        super.onRestart();
        Log.i("my", "onRestart---");
    }


    @Override
    protected void onStart()
    {
        // TODO Auto-generated method stub
        super.onStart();
        Log.i("my", "onStart---");
    }


    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();
        Log.i("my", "onResume---");
    }


    @Override
    protected void onPause()
    {
        // TODO Auto-generated method stub
        super.onPause();
        Log.i("my", "onPause---");
    }

    @Override
    protected void onStop()
    {
        // TODO Auto-generated method stub
        super.onStop();
        Log.i("my", "onStop---");
    }

    @Override
    protected void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.i("my", "onDestroy---");
    }
    
}

当启动Activity界面的时候,Log如下:

07-30 09:54:26.793: INFO/my(833): et=android.widget.EditText@4051ab70
07-30 09:54:26.793: INFO/my(833): tv=android.widget.TextView@4051a428
07-30 09:54:26.813: INFO/my(833): onCreate---
07-30 09:54:26.813: INFO/my(833): onStart---
07-30 09:54:26.813: INFO/my(833): onResume---

 

 

 

 

可以看到首先启动的是onCreate(),然后是onStart(),然后是onResume(),看得到有了界面。
当按下home键的时候,log如下:

07-30 09:54:26.793: INFO/my(833): et=android.widget.EditText@4051ab70
07-30 09:54:26.793: INFO/my(833): tv=android.widget.TextView@4051a428
07-30 09:54:26.813: INFO/my(833): onCreate---
07-30 09:54:26.813: INFO/my(833): onStart---
07-30 09:54:26.813: INFO/my(833): onResume---
07-30 09:56:31.183: INFO/my(833): onPause---
07-30 09:56:32.018: INFO/my(833): onStop---

可以看到多了onPause(),以及onStop(),

再次按下home键,切回去Activity,Log如下:

07-30 09:54:26.793: INFO/my(833): et=android.widget.EditText@4051ab70
07-30 09:54:26.793: INFO/my(833): tv=android.widget.TextView@4051a428
07-30 09:54:26.813: INFO/my(833): onCreate---
07-30 09:54:26.813: INFO/my(833): onStart---
07-30 09:54:26.813: INFO/my(833): onResume---
07-30 09:56:31.183: INFO/my(833): onPause---
07-30 09:56:32.018: INFO/my(833): onStop---
07-30 09:57:49.303: INFO/my(833): onRestart---
07-30 09:57:49.303: INFO/my(833): onStart---
07-30 09:57:49.303: INFO/my(833): onResume---

在这里执行了onRestart(),onStart(),onResume()方法。
这里因为系统决定回收Activity,这里无法模拟当Activity被停止,然后被回收以后的状态,但是生命周期与新启动一个activity是一样的。

 

如果这时候按下call键,则会弹出对话框,这时候会局部挡住当前的Activity,然后再按返回键,log如下:

07-30 09:54:26.793: INFO/my(833): et=android.widget.EditText@4051ab70
07-30 09:54:26.793: INFO/my(833): tv=android.widget.TextView@4051a428
07-30 09:54:26.813: INFO/my(833): onCreate---
07-30 09:54:26.813: INFO/my(833): onStart---
07-30 09:54:26.813: INFO/my(833): onResume---
07-30 09:56:31.183: INFO/my(833): onPause---
07-30 09:56:32.018: INFO/my(833): onStop---
07-30 09:57:49.303: INFO/my(833): onRestart---
07-30 09:57:49.303: INFO/my(833): onStart---
07-30 09:57:49.303: INFO/my(833): onResume---
07-30 10:01:20.093: INFO/my(833): onPause---
07-30 10:01:32.574: INFO/my(833): onResume---

当对话框挡住activity时,调用了onPause,按下返回键时,重新onResume().

 

 

 

 

 

 

 

 

 

目录
相关文章
|
自然语言处理 Java Scala
Flink CDC产品常见问题之大文件整库同步如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
9月前
|
运维 Cloud Native Java
|
9月前
|
缓存 前端开发 搜索推荐
React 导航栏组件 Navbar
本文介绍了如何使用React创建导航栏组件,涵盖基础概念、常见问题及解决方案。导航栏是Web应用的重要组成部分,React提供了多种方式实现功能强大且美观的导航栏。文章详细探讨了动态生成菜单、样式一致性、性能优化和可访问性等问题,并通过代码案例展示了如何结合React Router实现动态导航栏。此外,还提供了样式与响应式设计的CSS示例,确保导航栏在不同设备上表现良好。掌握这些技巧有助于开发高质量的React应用,提升用户体验。
374 21
|
10月前
|
安全 网络安全
您有一份网络安全攻略待领取!!!
深入了解如何保护自己的云上资产,领取超酷的安全海报和定制鼠标垫,随时随地提醒你保持警惕!
您有一份网络安全攻略待领取!!!
|
10月前
|
机器学习/深度学习 人工智能 运维
智能化运维:提升IT系统管理效率的新范式####
在数字化转型加速的今天,企业IT系统的复杂性日益增加,传统的运维模式已难以满足高效、稳定的业务需求。本文探讨了智能化运维(AIOps)如何通过融合人工智能、大数据分析和自动化工具,重塑IT运维流程,显著提升管理效率和服务质量,为企业带来前所未有的运营洞察力和响应速度。 ####
|
9月前
|
SQL NoSQL 数据可视化
你的mongodb客户端是哪个呢?
MongoDB 是一种流行的文档数据库,支持多种应用场景。常用的客户端管理工具包括: 1. **MongoDB Shell**:现代命令行界面,提供语法高亮、自动完成等功能。 2. **MongoDB Compass**:图形化界面,支持可视化查询、聚合框架、多平台运行和实时性能监控。 3. **Studio 3T**:企业级工具,支持SQL查询、代码生成、数据导入导出和高级安全功能。
1488 14
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能技术在金融领域的应用有哪些?
【10月更文挑战第16天】人工智能技术在金融领域的应用有哪些?
3850 1
|
9月前
|
设计模式 Python
简单分享下python多态
多态是面向对象编程中至关重要的特性,通过继承和方法重写,可以实现代码复用和灵活扩展。Python的鸭子类型进一步增强了多态的灵活性,使得代码更具适应性。通过理解和应用多态,可以写出更为简洁、优雅和高效的代码。
143 9
|
机器学习/深度学习 自然语言处理 机器人
智能客服:提高客户服务的创新技术
智能客服作为提高客户服务质量和效率的创新技术,正在不断改变商业和服务的方式。通过自然语言处理、机器学习和知识图谱等技术,智能客服能够为客户提供更好的服务体验,同时也为企业带来了更大的竞争优势。虽然智能客服在应用中还面临一些挑战,如情感分析和数据隐私,但随着技术的发展和完善,它将在未来持续发挥重要作用。
774 1
|
算法 程序员
程序员可能越来越排斥面试时做题的原因
程序员可能越来越排斥面试时做题的原因
373 1