addview的view何时显示的问题

我的项目是一个在任何时候都可以弹出的待机界面,界面是一张图和一个倒计时提示。
我的界面是通过在activty中通过WindowManager.addview上去的。因为addview的window可以控制view显示在最上层,而单纯的activity界面不可以,会被遮挡。
因为activity真正visible的时候,是会回调onWindowFocusChanged这个方法,所以为了避免每个平台启动activity的速度问题,把启动倒计时放在onWindowFocusChanged这个方法里。大部分时候是没问题的。
但是在测试过程中,遇到一个棘手的问题。当前台是一个PopupWindow或者是一个WindowManager add的一个View时候,activity的onWindowFocusChange不会被回调,也就是这个activity获取不到焦点。因为activity的层级在前台的window下面。经过研究,view可以通过设置以下监听
addOnAttachStateChangeListener ( new OnAttachStateChangeListener () {
              
               @Override
               public void onViewDetachedFromWindow ( View v ) {
                   
                   
               }
              
               @Override
               public void onViewAttachedToWindow ( View v ) {
                                   }
}
onViewAttachedToWindow(View v) 表示view被attach到window上了。所以可以在onViewAttachedToWindow(View v)的方法中进行倒计时的吊起。这样就解决了我的问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值