Android 如何正确保存进度对话框状态?
在我的应用程序中,当我做一些长时间的工作时,我会在工作尚未完成时使用进度对话框。 我到处找,但没有成功。我创建的一切都是关于保存用户界面元素和状态的 然后,我想知道如何正确保存进度对话框状态 我希望这个工作,因为当方向屏幕改变应用程序崩溃 我应该使用onSaveInstanceState()方法吗?怎样?我尝试使用“保存为捆绑包”,但没有成功 任何建议都很好Android 如何正确保存进度对话框状态?,android,Android,在我的应用程序中,当我做一些长时间的工作时,我会在工作尚未完成时使用进度对话框。 我到处找,但没有成功。我创建的一切都是关于保存用户界面元素和状态的 然后,我想知道如何正确保存进度对话框状态 我希望这个工作,因为当方向屏幕改变应用程序崩溃 我应该使用onSaveInstanceState()方法吗?怎样?我尝试使用“保存为捆绑包”,但没有成功 任何建议都很好 感谢要处理屏幕方向,您必须使用onRetainonConfiguration实例() 您可以在此处找到关于屏幕方向的更广泛的解释:我在应用
感谢要处理屏幕方向,您必须使用onRetainonConfiguration实例()
您可以在此处找到关于屏幕方向的更广泛的解释:我在应用程序中执行此操作的方式是覆盖活动中的onConfigurationChanged()方法,如下所示:
@Override
public void onConfigurationChanged(Configuration config) {
//Just switch the layout without respawning the activity
super.onConfigurationChanged(config);
}
到目前为止,这还没有给我任何问题,而且当方向更改时,我的活动不会重新加载或重新启动。我认为,您的对话框在方向更改时崩溃,因为您没有使用
@Override
protected Dialog onCreateDialog(int dialogID, Bundle args)
及
显示您的对话框。
我对警报对话框也有同样的问题。在我看来,如果您不以这种方式创建对话框,它将链接到您的活动,当活动停止时,系统会发现对话框仍在尝试访问该停止的活动,而不是新的活动。您需要将其添加到显示对话框的活动的清单文件中:
android:configChanges="keyboardHidden|orientation"
谢谢我读过关于OnRetainOnConfiguration实例()的文章,其中说:OnRetainOnConfiguration Change()应该只用于保留加载成本高昂的数据。那么,它真的好用吗?或者下面的答案更合适?好吧,这取决于你的活动是做什么的,你说你的活动执行了很长的工作,所以,我想你下载了很多数据或东西,那么在这种情况下,我会使用OnRetainonConfiguration Changed。。。但在其他情况下(取决于用例),我会使用OnConfiguration Changed()…感谢您的解释。。我会去做更多的测试,然后我把我决定的。。。无论如何谢谢你!当点击你的链接时,我得到404。也许他们已经更改了链接,但是你会在这里找到:谢谢!我在这里做了一些测试,它也很棒=)
android:configChanges="keyboardHidden|orientation"