如何在方向更改时保留datetime对话框的状态?

And*_*eks 5 android android-datepicker android-dialog android-activity android-dialogfragment

在方向更改时,将重新创建活动并重新创建日期时间对话框.我想保存用户已更改的日期时间对话框的状态.

在我关闭对话框之前,我想保留日期时间对话框的状态.

注意,我可以在onSaveInstanceState中关闭对话框,我可以在其中使用该包.但是,当活动进入暂停状态时也会调用它,在这种情况下,我不想忽略该对话框.因此,决定在onDestroy方法上解除它,但我没有bundle对象.这就是我面临这个问题的原因.有没有办法在onDestroy中访问捆绑包?或者对我的问题的任何其他建议将不胜感激.

@Override
protected void onDestroy() {
    if(dateTimeDialog !=null && dateTimeDialog.isShowing())
    {
        //<HERE I WANT THE STATE TO BE SAVED IN THE BUNDLE>
        dateTimeDialog.dismiss();
    }
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

基本上,如果用户离开我们的应用程序,我们会锁定应用程序,并在解锁屏幕时恢复正在查看的对话框.如果我们在onSavedInstanceState上解除对话框,在解锁应用程序之后它会调用onRestart,start和resume方法,其中没有一个方法提供Bundle实例作为参数.

此外,我们有横向和纵向的单独布局,因此我们无法在清单文件中设置configChanges ="orientation".

Kai*_*Kai 0

您仍然可以保留 中的对话框状态onSaveIsntanceState(),但仅关闭 中的对话框onDestroy(),这应该满足您的要求。虽然我不确定对话消除会onDestroy()完成什么。