【问题标题】:How to handle Activity when Orientation changes?方向改变时如何处理活动?
【发布时间】:2010-08-09 09:28:13
【问题描述】:

我正在编写一个活动,它从服务器加载数据并使用 ArrayAdapter 将其显示为列表。为此,我正在显示一个进度对话框,即加载,同时它从服务器加载所有数据。然后我在处理程序中关闭对话框。我的问题是,当我改变方向时,会再次显示进度对话框,这是不需要的,因为所有数据都已显示?

【问题讨论】:

    标签: android progressdialog activity-lifecycle


    【解决方案1】:

    我会说你有两个选择:
    要么你强迫你的活动不能改变方向:

    <activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation"> 
    

    在您的清单 (documentation) 中,它会告诉系统您要自己处理方向更改,在这种情况下,您不会做任何事情。但是,您宁愿在onPause()onSaveInstanceState() 中添加一些代码,因为例如当您接到电话时,Android 可能会中断此活动。所以你需要处理一些储蓄。

    或者,您选择在对话框已经显示或后台线程正在运行时阻止显示。这很容易,因为您可以使用 AsyncTask 作为下载部分,因为您可以使用 AsyncTask.getStatus,它将返回您 the status of the task。如果它已经处于完成状态,则必须取消对话框。

    【讨论】:

    • 我的问题是?如何避免显示我在 OnCreate() 中显示的进度对话框。关闭对话框后。我改变了方向,再次重新创建了活动,所以再次显示对话框?如何避免?
    • 哦,那么您必须从 asynctask 编号中检查“已完成”状态吗?
    • 我在哪里可以获得安卓电子书籍或材料来阅读?我的意思是免费的。
    • 它们不是很多免费材料,但您可以在此页面上找到一些:speckyboy.com/2010/08/04/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多