Android中在activity弹出一个对话框,是否会执行onPause生命周期方法

       本篇主要记录一下在项目开发过程中,遇到的问题点以及解决方案小结。

        在实际的应用开发中,与Activity不可避免的要打很多交道,在某个应用场景中在当前activity启动一个半透明Progressdialog,后面的activity处于可见状态,那么问题来了,此时的activity会走到onPause()方法吗

       实际用代码验证了下,打出log观察得知,并不是我们想象的那样执行onPause()。

      举个例子来说,我们常常需要在onResume方法中进行网络交互操作,那么在网络交互的过程中免不了使用Progressdialog,那么现在问题来了,在我们弹出一个进度对话框的时候,如果我们的activity的onPause生命方法得到执行,然后在数据加载完毕,对话框进行消失的时候,activity的 onResume再次得到执行,然后再次请求网络,这样岂不是会造成恶性循环?当然了,这样的情况并不会发生,因为并不会执行activity的onPause,开发者们也早就想到这样的情况。

     在我们创建对话框的时候,需要传入一个context类型的参数.这个参数也就说明我们的dialog是在这个上下文创建的,我们的activity也是正在交互的,所以并不会执行onPause的。

        最后解决的办法附上。

  1. 自定义一个dialog,让它继承activity
  2. 在mainfest文件中去声明activity
<activity
    android:name=".activity.PowerSaveActivity"
    android:theme="@style/ActivityDialog" />

     小结:其实启动的dialog是一种activity形式的方式存在,主要还是根据实际需求去找到最合适的解决方案。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值