我可以在暂停的活动上运行onClick事件。我认为不应该发生, 我希望能有一些关于如何解决这个问题的线索。
在我的Activity(扩展RoboFragmentActivity)中,我有一个简单的TextView日期条目。 此TextView的OnClick事件显示DatePickerFragment:
public void onDateRowBoxClick(View view) {
new DatePickerFragment().show(getSupportFragmentManager(), "datePicker");
}
我还有一个AsyncTask,它在OnPostExecute事件中启动另一个活动。 AsyncTask显示一个进度对话框(操作需要几秒钟),它隐藏了日期视图。
在AsyncTask.doInBackground操作期间,我单击进度对话框中的区域,该区域隐藏了日期视图。异步任务完成后,将关闭进度对话框,并启动另一个活动。
相反,我在日期视图上获取了onClick事件。它抛出了IllegalStateException,因为活动已经暂停并且片段无法处理它(我得到IllegalStateException:无法执行活动的方法,IllegalStateException:无法在onSaveInstanceState之后执行此操作;在onDateRowBoxClick处)。但是我认为该事件不应该传递给暂停的活动。我的问题是:我是对的以及如何解决这个问题?
现在我有这个解决方法,但它很愚蠢:
boolean paused = true;
@Override
protected void onResume() {
super.onResume();
paused = false;
}
@Override
protected void onPause() {
super.onPause();
paused = true;
}
public void onDateRowBoxClick(View view) {
if (!paused)
new DatePickerFragment().show(getSupportFragmentManager(), "datePicker");
}
BTW,起初我认为它与http://code.google.com/p/android/issues/detail?id=19917有关,但解决方法对我不起作用。