Activity设计模式
初学者在定义Activity时,常常在onCreate方法中完成逻辑处理和界面显示。如果逻辑处理的时间很短暂,也没有关系,但是如果业务逻辑是网络请求或数据库处理,可能需要一定的时间才能处理完成,那么这样会导致需要等待一定的时间才能看到界面显示,这样的用户体验将非常糟糕。以下介绍一种Activity的实现模式,供大家参考:
- 定义界面的布局,要求在未填充数据前要求界面也是布局整洁、清晰的;这样保证在setContentView执行完后,用户即可能看到界面显示;
- 在执行setContentView之后,如果需要进行逻辑处理,开启异步线程执行,可以通过Java线程池实现;线程逻辑处理执行完毕发送message给主线程的handler来处理;
- 每当有异步线程开启,显示ProgressBar或ProgressDialog;
- 当异步线程执行完毕,则关闭ProgressBar或ProgressDialog;如果是多线程,那么当所有线程执行完毕才关闭ProgressBar或ProgressDialog;
- 为实现UI界面更新,需要在Activity中定义handler,在handler中根据逻辑处理结果来刷新界面;
- 如果是多线程,handler在实现中,需要判断多个线程任务是否都执行完毕,如果都执行完毕才刷新界面;
- 播放音乐
欢迎拍砖!