您的位置:首页 > 产品设计 > UI/UE

Activity处于后台Handler进行UI操作View组件的isShow()方法慎用

2013-03-26 14:17 417 查看
今天测试程序时发现Activity处于后台时,当前activity处于stop()状态,当前activity接受到消息,然后针对该消息使用Handler进行UI操作,需要将界面中的某个组件隐藏,但发现一直无法隐藏,主要是由于该组件隐藏前,使用isShow()方法进行判断。当前Activity处于后台时,View.isShow()一直为false,导致不会隐藏该组件。所以最好是不要用这个判断条件或者是改为判断该组件是否为null,当不为null的时候可以执行 rl_qrcode.setVisibility(View.GONE);则组件的显示和隐藏会正常执行。

亲,View.isShow()慎用

Handler mHandler = new Handler(){
@Overridepublic void handleMessage(Message msg) {
switch (msg.what) {
case SHOW_SET:
if (rl_qrcode != null) {
rl_qrcode.setVisibility(View.VISIBLE);
}
break;
case HIDE_SET:
if (rl_qrcode.isShow()) { //当前Activity处于后台时,View.isShow()一直为false,导致不会隐藏该组件
rl_qrcode.setVisibility(View.GONE);
}
break;
default:
break;
}
super.handleMessage(msg);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐