Android什么时候只会调用onPause()而不会调用onStop()?

转载 2017年01月03日 10:19:16

看到网上很多人说弹出Dialog时只会调用onPause()而不会调用onStop(),可是自己做了下实验,此时既不会调用onPause()也不会调用onStop()。。。

大概扫了下官方文档,translucent(半透明) activity好像可以做到,试了下,果真可以。


至于为什么呢?让我们看下Activity生命周期(注:图片来自:Big.Nerd.Ranch.Guides.Android.Programming.The.Big.Nerd.Ranch.Guide.2nd.Edition):

可以看到要调用onPause()Activity必须Leavesforeground,查了下,好像是Activity必需离开Activity栈的栈顶,显然Dialog不是Activity,并不能使原来的Activity离开栈顶。

translucent(半透明) activity既满足使原来的Activity Leavesforeground,又保持visible,所以能有只会调用onPause()而不会调用onStop()的效果。

android设置Activity背景色为透明的2种方法

Android设置背景色为透明

方法一:

只要在配置文件内activity属性配置内加上

android:theme="@android:style/Theme.Translucent" 

就好了。

这样就调用了android的透明样式!

方法二:

先在res/values下建colors.xml文件,写入:
  
  <?xmlversion="1.0"encoding="UTF-8"?>
  
  <resources>
  
  <colorname="transparent">#9000</color>
  
  </resources>
  
  这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。
  
  再在res/values/下建styles.xml,设置程序的风格
  
  <?xmlversion="1.0"encoding="utf-8"?>
  
  <resources>
  
  <stylename="Transparent">
  
  <itemname="android:windowBackground">@color/transparent</item>
  
  <itemname="android:windowIsTranslucent">true</item>
  
  <itemname="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>
  
  </style>
  
  </resources>
  
  最后一步,把这个styles.xml用在相应的Activity上。即在AndroidManifest.xml中的任意<activity>标签中添加
  
  android:theme="@style/transparent"
  
  如果想设置所有的activity都使用这个风格,可以把这句标签语句添加在<application>中。
  
  最后运行程序,哈哈,是不是发现整个界面都被蒙上一层半透明了。最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下的所有东西可以却都操作无效。


举报

相关文章推荐

Android什么时候只会调用onPause()而不会调用onStop()?

看到网上很多人说弹出Dialog时只会调用onPause()而不会调用onStop(),可是自己做了下实验,此时既不会调用onPause()也不会调用onStop()。。。 大概扫了下官方文档,...

Android的Activity什么时候会调用onCreate()而不调用onStart()?

Android的Activity什么时候会调用onCreate()而不调用onStart()?这是一道面试题。目前网上有关资料不多,就只有一篇知乎文章: https://www.zhihu.com/q...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

什么时候用C而不用C++?

转自:http://www.skywind.me/blog/archives/1407 引:前两天不是有一个问题是“什么时候用C++而不用C”,我一直觉得问错了,难道不是“能用C++就不用C”么...

iOS 面试题(6.):自己写的 view 成员,应该用 weak 还是 strong?

我们知道,从 Storyboard 往编译器拖出来的 UI 控件的属性是 weak 的,如下所示 @property (weak, nonatomic) IBOutlet UIButton *myB...

ViewGroup为什么不会调用onDraw

转自 http://blog.csdn.net/leehong2005/article/details/7299471 正常情况下,我们重写LinearLayout的onDraw方法,它是不会被调用...

ViewGroup为什么不会调用onDraw

正常情况下,我们重写LinearLayout的onDraw方法,它是不会被调用的,这篇文章就来分析一下原因和解决方法。 一,现象 Android="http://schemas.android...

ViewGroup为什么不会调用onDraw

正常情况下,我们重写LinearLayout的onDraw方法,它是不会被调用的,这篇文章就来分析一下原因和解决方法。一,现象<com.test.demo.MyLinearLayout xmlns:A...

ViewGroup为什么不会调用onDraw

正常情况下,我们重写LinearLayout的onDraw方法,它是不会被调用的,这篇文章就来分析一下原因和解决方法。 一,现象     android:id="@+id/ll_abso...

什么时候会使用TCP53端口

Q: 平时用Sniffer观察到的DNS报文都在使用53/UDP,什么时候会用到53/TCP? A:     对于DNS服务器,递归解析时用53/UDP,区传输因需要可靠传输,必须使用53/TCP。...

recorderChild()函数在什么时候调用,为什么不用SetZorder()

recorderChild函数功能
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)