我正在编写一个活动,该活动从服务器加载数据并使用ArrayAdapter将其显示为列表.为此,我正在显示一个进度对话框,即加载,同时它从服务器加载所有数据.然后我关闭处理程序中的对话框.我的问题是,每当我更改方向时,都会再次显示进度对话框,这是不需要的,因为已经显示了所有数据?
解决方法:
我会说您有两种选择:
您要么强迫自己的活动不能改变方向:
<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation">
在清单(documentation)中,它将告诉系统您要自己处理方向更改,在这种情况下,您将不会做任何事情.但是,您宁愿在onPause()和onSaveInstanceState()中添加一些代码,因为当您接到一个电话时,Android可能会中断此活动.因此,您需要处理一些节省.
或者,您选择在已经显示或后台线程正在运行时阻止显示对话框.这很容易,因为您可以使用AsyncTask作为下载部件,因为您可以使用AsyncTask.getStatus,它将返回the status of the task.如果它已经处于完成状态,则必须取消该对话框.