Activity的onStop和onPause的调用时机

Activity的onStop和onPause的调用时机

我们先看一张一张经典的生命周期流程图:

由上图可知,onPause的调用是“Another activity comes in front of the activity”,即另一个activity跑到前台来的时候,前一个activity的onPause方法会被调用。以前也看过一些资料,说是Toast和Dialog的出现会影响Activity的生命周期,会部分遮住activity而是activity进入到onPause状态,本人在一段时间内竟然也相信了,一直也是这么认为的,直到写这篇文章的时候,做了一个简单的测试,才发现无论是Toast还是Dialog,它们的出现对的activity的生命周期无任何影响,有另一片博客的观点与本人相同,可阅读印证一下

http://blog.csdn.net/cloud_castle/article/details/56011562

     onStop的调用是“The activity is no longer visible”,也就是完全不可见的时候调用的,这个完全不可见真的就是指视觉上的完全看不到而已,无论是按home键返回桌面,还是启动另一activity把原activity完全遮住,都会调用onStop。但是当启动的activity是透明的时候,原activity只会进入onPause状态,而不会走到onStop状态,因为原acitivity还是可见的,虽然逻辑上被遮住了,但是视觉上确实是可见的,这一点要注意。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实验一Android环境构建与Activity生命周期 【目的】 安装智能手机开发相关软件平台,并在此基础上测试Activity生命周期过程。 【要求】 1. 完成智能手机开发平台安装、以及相关配置; 2. 并实现Hello World; 3. 添加Log日志,通过Log日志验证Activity生命周期中的7个方法执行过程; 4. 了解项目的基本文件目录结构,了解Activity周期中的4种状态。 【过程】 (1)建立新项目,实现Hello World; 1)打开Eclipse,选择File -> New -> Android Project. 2)填写project name(helloword),然后选择选择build target(Android 2.1),填写Application name(helloword),Package name(your.helloword)完成创建。 3)运行结果如下图: (2)设置生命周期的Log日志,分别执行相关操作 在hellowordActivity.java文件中依次添加回调函数,分别在各个方法中添加日志监 视语句,复写函数。添加代码如下: package your.helloword; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class HellowordActivity extends Activity { /** Called when the activity is first created. */ private static String TAG="helloword";//设置过滤关键字helloword @Override //完全生命周期开始时被调用,初始化activity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG,"(1) onCreate()");} @Override //可视生命周期开始时被调用,对用户界面进行必要的更改 public void onStart() { super.onStart(); Log.i(TAG,"(2) onStart()");} @Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源 public void onResume() { super.onResume(); Log.i(TAG,"(3) onResume()");} @Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息 public void onRestart() { super. onRestart(); Log.i(TAG,"(4) onRestart()");} @Override //在活动生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onPause() { super.onPause(); Log.i(TAG,"(5) onPause()");} @Override //在可视生命周期结束时被调用,用于保存持久的数据或释放占用的资源 public void onStop() { super.onStop(); Log.i(TAG,"(6) onStop()");} @Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等 public void onDestroy() { super.onDestroy(); Log.i(TAG,"(7) onDestroy()");} }     程序运行结果将会显示在Logcat中,打开程序,在LogCat的输出日志中检查输出情况, 执行顺序onCreate()、onStart()、onResume()。运行结果如下: 按下back键,在LogCat的输出日志中检查输出情况,执行顺序onPause()、onStop() 、onDestory()。运行结果如下: 按下home键,在LogCat的输出日志中检查输出情况,执行顺序onPause()、onStop( ); 再启动HelloWorld,在LogCat的输出日志中检查输出情况,执行顺序是onRestart()、 onStart()、onResume(); 实验心得 本次实验目的是学会安装智能手机开发相关软件平台,并在此基础上测试Activity的生命 周期过程。通过本次实验,了解了a

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android海纳百川

打赏加微信,送跑车加管理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值