在方向更改时,将重新创建 Activity 并重新创建日期时间对话框。我想保存用户更改的日期时间对话框的状态。
在我关闭对话框之前,我想保留日期时间对话框的状态。
请注意,我可以关闭 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();
}
基本上,如果用户离开我们的应用程序,我们会锁定应用程序,并在解锁屏幕时恢复他正在查看的对话框。如果我们关闭 onSavedInstanceState 上的对话框,在解锁应用程序后,它会调用 onRestart、start 和 resume 方法,其中没有一个将 Bundle 实例作为参数提供。
此外,我们有单独的横向和纵向布局,因此我们无法在清单文件中设置 configChanges="orientation"。