在屏幕方向改变时,Activity 和日期时间对话框都会被重新创建。我想保存用户更改的日期时间对话框状态。
在我关闭对话框之前,我想保留日期时间对话框的状态。
请注意,我可以在 onSaveInstanceState 中关闭对话框,在那里我有 bundle 可用。但是,当活动进入暂停状态时也会调用该方法,在这种情况下,我不想关闭对话框。因此,我决定在 onDestroy 方法中关闭它,但是我没有 bundle 对象。这就是为什么我面临这个问题。是否有办法在 onDestroy 中访问 bundle?或者您对我的问题有任何其他建议,将不胜感激。
在我关闭对话框之前,我想保留日期时间对话框的状态。
请注意,我可以在 onSaveInstanceState 中关闭对话框,在那里我有 bundle 可用。但是,当活动进入暂停状态时也会调用该方法,在这种情况下,我不想关闭对话框。因此,我决定在 onDestroy 方法中关闭它,但是我没有 bundle 对象。这就是为什么我面临这个问题。是否有办法在 onDestroy 中访问 bundle?或者您对我的问题有任何其他建议,将不胜感激。
@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”。
DatePickerDialog
类具有onSaveInstanceState()
和onRestoreInstanceState()
方法。 - S.D.