理解onPause和onStop

onPause 用于由一个Activity转到另一个Activity、设备进入休眠状态(屏幕锁住了)、或者有dialog弹出时

onStop 用于不可见的Activity(有对话框弹出时,这时底下的activity仍然可见,所以此时onStop不会被调用)

从下面的日志日志可以看出区别:

  1.从FirstActivity跳到SecondActivity时

  FirstAcvity ---> onCreate
  FirstAcvity --->onStart
  FirstAcvity --->onResume
  FirstAcvity --->onPause
  SecondActivity--->onCreate
  SecondActivity--->onStart
  SecondActivity--->onResume
  FirstAcvity --->onStop

  现在给AndroidMainfest.xml中的SeconedActivity属性加入android:theme="@android:style/Theme.Dialog",则SeconedActivity将以对话框形式出现,不会对FirstAcvity形成遮盖.

  这时的状态输出为:

  FirstAcvity ---> onCreate
  FirstAcvity --->onStart
  FirstAcvity --->onResume
  FirstAcvity --->onPause
  SecondActivity--->onCreate
  SecondActivity--->onStart
  SecondActivity--->onResume

  这时FirstAcvity比完全遮盖时少调用了onStop方法。

  

  以下两种情况下 都只会触发onPause而不会触发onStop

  1. 一个透明的包含Dialog的Activity 出现

  2. 按poweroff锁屏

  显示一个非activity的Dialog,是不会调用onPause和onStop的,因为此Dialog属于activity

时间: 2024-07-31 22:37:22

理解onPause和onStop的相关文章

Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?

原文:http://www.xuebuyuan.com/1608083.html 最近在研究Activity的启动流程,老罗的blog在看,也找了其它资料学习,也跟过Android4.3的源码, 在跟代码的过程中,突然想到下面的这个问题: 网上太多根据Android开发规范翻译转载的内容,都不是我想要的答案,那就自己分析下. 如下是一段典型的Activity间切换的日志,从AActivity切换到BActivity: 10-17 20:54:42.247: I/com.example.servi

activity生命周期的onPause和onStop

搞了这么长时间的android开发,却对一些基础的东西一直模棱两可...就比如这个onPause和onStop.如果从一个界面,跳到另一个界面,那么是调用哪个呢? 经过我的实验.搞清楚了.onPause是有活动状态变为非活动状态.onStop()是变为不可见.那么从一个页面跳到另一个页面就是依次调用onPause,onStop.看下程序: package com.example.fuhe; import android.os.Bundle; import android.app.Activity

onPause() onResume() onStop() 何时被调用?

代码: http://pan.baidu.com/s/1kTi0qhD 效果: eclipse 中这样解释的这些方法 注意除了常规方法外,还有两个方法,onSaveInstanceState(Bundle outState),onRestoreInstanceState(Bundle savedInstanceState)注意看这两个方法的解释 onCreate(Bundle savedInstanceState) @OverrideCalled when the activity is sta

点击home后判断Activity是onPause()还是onStop()

当手机点击home键后Activity执行过程是: onPause()->onStop(); 失去焦点且不可见,但没有被终止. 当再打开此应用时执行过程是: onRestart()->onStart()->onResume(); 总结:系统会根据新的 Activity 是否会占满整个屏幕而决定是否"停止(onStop)"该 Activity. 自然地,如果新的 Activity 是透明的或者不占满屏幕的,那原来的 Activity 将只会被"暂 停"

深入理解Android之AOP

深入理解Android之AOP 格式更加精美的PDF版请到:http://vdisk.weibo.com/s/z68f8l0xTgCLK 下载 一.闲谈AOP 大家都知道OOP,即ObjectOriented Programming,面向对象编程.而本文要介绍的是AOP.AOP是Aspect Oriented Programming的缩写,中译文为面向切向编程.OOP和AOP是什么关系呢?首先: l OOP和AOP都是方法论.我记得在刚学习C++的时候,最难学的并不是C++的语法,而是C++所代

Android Activity 生命周期的透彻理解

说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊.     既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂. 首先看看android developers 网上的activity的生命周期图:      activity启动的时候:onCreate ---> onStart ---> onResume 这个过程不用多说,大家都知道.这里主要

【Android 个人理解(九)】

本篇博客首先介绍Activity的生命周期以及Task(即Activity栈的概念),从而说明在几种情况下(比如程序正常启动或退出),程序执行的顺序(即调用生命周期方法的顺序).最后重点区别几个容易混淆的生命周期方法. 一.Activity的生命周期深入理解 最初我们都会看到下面这个图: Activity整个生命周期具有4种状态,四种状态在三个嵌套循环通过调用七个主要方法转换四种状态: 1)   四种状态 1.活动(Active/Running)状态 当Activity运行在屏幕前台(处于当前任

用代码理解Acticity启动模式

本章内容 Activity 四种启动模式的理论知识 代码理解 Activity 四种启动模式的理论知识 standard 默认模式,可以不用写配置.在这个模式下,都会默认创建一个新的实例.因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加. singleTop 当活动的启动模式指定为 singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例,如果不是在栈顶,那么就会再次创建一个实例. singleTask 启动模式为

四大组件的理解

四大组件之ContentProvide: *ContentProvider关联的数据一般在内部存储中 *ContentProvide的生命周期由系统管理 四大组件之Service start模式: *onCreat()1次 *onStartCommand()多次* onDestroy().调用startService启动.stopService()或stopSelf()停止 bind模式:*onCreat()1次,onBind()1次,onDestory()1次 bindService启动,un