欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝销量额 编辑:程序博客网 时间:2024/05/18 00:35

AlterDialog

1 dialog显示时Actvity的状态还是在onResume状态,没有改变

2 AlterDialog在使用back按键时会返回到Activity,该dialog会dismiss,如果不做处理,有可能会触发窗体泄漏的问题(当dismiss时,后台还有线程在处理,线程处理后dismiss掉dialog,这样就会出现问题)。解决办法:diaglog最后添加一个监听器,来监听dismiss状态,出现dismiss状态后最好让窗口关闭,线程结束(如果有对dialog的处理,最好结束掉)。

这里写图片描述

3 当屏幕旋转的时候 整个流程通过log打印出

在onSaveInstanceState中保存需要保存的值,onRestoreInstanceStace中恢复保存的值。

屏幕旋转Activity的生命周期:
只显示竖屏: android:screenOrientation=”portrait”
只显示横屏: android:screenOrientation=”landscape”

需要特别注意的是在屏幕旋转的时候,activity会从新创建,会走上图的流程,父类Activity在onSaveInstancestate()中会执行restoreManagedDialog()保存Dialog的信息,因此需要在onPause()中做判断,如果是因为旋转屏幕,或内存不足等情况而重新创建Activity,我们需要先把dialog给dismiss或者removeDialog(),如果底部还有相应的线程在处理更新dialog的ui,我们也需要将其停掉。因为重新创建后相应的dialog和activity都会从新创建,和以前不是同一个实例,所以就算对其做操作也不会真正响应,而在界面显示的dialog只是因为没有dismiss而一直存在显示界面上,其绑定的activity实例已经销毁了,我们应该让其消失,避免出现更新不了新的dialog的ui问题。

总的来说,1AlertDialog在显示后,按返回键的时候也会消失,所以应该监听dismiss’的状态,做相应的事件处理,2屏幕旋转或内存不足等其他原因造成activity重新创建的时候,都要在其on Pause()中将dialog给removeDialog,线程结束,在onSaveInstanceState()中保存要重新显示的参数,在onResume 中让dialog显示

onRestoreInstanceState中恢复

4 显示列表

5 显示单选

6 显示多选

7 显示可以输入的

8 显示progressDialog

progressDiaglog 还需耀yonghanler 和线程来处理进度条的改变,以及相应的事件

9 显示联系人(contentProvider,获取系统中联系人)

0 0
原创粉丝点击