今天早上实现了个show 一个正在加载数据dialog,从最开始的使用自定义,到后面自己写最简单的
dialog2 = ProgressDialog.show(MoreContactsActivity.this, "正在加载数据", "正在加载数据");
dialog2.show();
一直都没有显示出来,这让我非常的郁闷。后面经过几次不断的测试,发现:
1,把dialog成全局变量的时候,最好先给它赋一个初值null ;
代码要规范:if(dialog==null){ ...show}
还有,关于handler的注解,我一般的处理逻辑是:
1,在自己的处理数据的逻辑中先show一个dialog出来,这要在主线程 然后在子线程去加载数据。
加载完了,在通过 handler来发送到Handler来处理。
逻辑一般都是这样,可今天的handler中
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
头上有了注解,它好像一直能运行,也就是说,我在处理数据之前show的dialog,在Handler的handleMessage()方法中关闭。
这样就会show了立马关闭,肉眼根本就无法发现, 所以应该把 关闭的dialog的方法,写在 case 里面。