Android什么时候只会调用onPause()而不会调用onStop()完全解析?
来源:互联网 发布:新一代人工智能 编辑:程序博客网 时间:2024/05/22 04:40
今天突然有人问到标题的问题。瞬间来了兴趣。居然还可以这么玩?查看了网上的介绍。原理上的东西都有。但是好多没有真正测试,都是一个乱写其他人转载,看样子他们也没测试啊。下面我就真正写一下这个程序。做一下总结:
一、实现原理:
图片显示是官方文档介绍,可以看到要调用onPause(),Activity必须Leavesforeground,查了下,好像是Activity必需离开Activity栈的栈顶,以上说法是别人的介绍。复制来的。
二、FirstAcitvity 通过第一个页面实现。
创建新的程序。命名为FirstActivity。
程序在启动的时候,执行的生命周期是:
FirstActivity---onCreate
FirstActivity---onStart
FirstActivity---onResume
锁屏执行的生命周期是:
FirstActivity---onPause
FirstActivity---onStop
进入后台的快捷键操作执行生命周期:
FirstActivity---onPause
FirstActivity---onStop
好多人介绍当弹出Dialog 的时候可以出现标题的效果。
点击FirstActivity 的 弹出dialog按钮。弹出dialog.
发现 7个主要生命周期,一个也不走。根本没有效果。所以网上好多人根本没测试过。只是一味的转载。发现单个页面似乎实现不大可能!
三、通过SecondActivity来辅助实现。
新建Activity,命名为SecondActivity .
因为在Activity的跳转时候也会执行这个这些生命周期。所以新建第二个页面,让他从第一个页面Intent过来。首先执行正常流程:点击FirstActivity页面按钮从FirstActivity跳转到SecondActivity.执行生命周期:
FirstActivity---onPause
SecondActivity---onCreate
SecondActivity---onStart
SecondActivity---onResume
FirstActivity---onStop
发现此时依旧没有实现效果。
解决方案如下:
修改 AndroidManifest.xml中SecondAcitvity属性。
方案1:添加 android:theme="@android:style/Theme.Dialog" 。将Activity修改为Dialog样式。
效果:
生命周期执行过程:
FirstActivity---onPause
SecondActivity---onCreate
SecondActivity---onStart
SecondActivity---onResume
效果实现Ok了
方案2 :修改 AndroidManifest.xml中SecondAcitvity属性。android:theme="@android:style/Theme.Translucent"
生命周期执行过程:
FirstActivity---onPause
SecondActivity---onCreate
SecondActivity---onStart
SecondActivity---onResume
效果实现Ok了
但是第二个页面是完全透明度。什么用?实际业务场景真的会用到吗
- Android什么时候只会调用onPause()而不会调用onStop()完全解析?
- Android什么时候只会调用onPause()而不会调用onStop()?
- Android什么时候只会调用onPause()而不会调用onStop()?
- Android: OnPause vs OnStop
- Activity的onStop和onPause的调用时机
- Android的Activity什么时候会调用onCreate()而不调用onStart()?
- Android Activity onPause与onStop
- android onPause()和onStop()区别
- Android的OnPause(), OnResume(), OnStop(), OnDestory
- Android onPause和onStop的比较
- Android生命周期中的onPause()和onStop()
- layoutsubviews什么时候会被调用
- layoutsubviews什么时候会被调用
- prepareForSegue在什么时候会调用
- Activity 不调用 onstop
- 什么时候会调用“拷贝构造函数”
- 析构函数什么时候会调用?
- iOS: initwithframe什么时候会被调用?
- 界面间传值的各种方式
- JavaScript清空数组
- 字数统计
- Incompatible conditional operand types int and Double
- 淘宝海量数据库之三:事务的ACID
- Android什么时候只会调用onPause()而不会调用onStop()完全解析?
- 大型JavaScript应用程序架构设计模式
- 文章标题
- Activiti 多实例与子流程分析
- 布局改变监听事件
- 1.Java设计模式-->装饰者模式
- 监控PostgreSQL数据库活动
- js 字符串转换成数字的三种方法
- 分割字符串