我有一个Activity,ProgressDialog被AsyncTask更新。我正在使用onCreateDialog来设置对话框。 AsyncTask正在写入SDCard。在正常情况下(旋转,背景等),我没有任何问题。防止onCreateDialog在进程被终止然后重新启动时被调用
问题是如果进程被终止,对话框会被重新创建。因此,我最终打开了一个“新打开”的活动和一个根本不应该显示的对话框,因为没有设置AsyncTask来更新它。
例如,当SD卡出现时,Reaper来到并杀死进程(没有onDestroy,noPause,noResume被框架调用)。但是,当应用程序恢复时(例如,从最近使用的应用程序),没有线索没有AsyncTask,我不得不显示对话框。我无法在onCreateDialog中返回null,因为应用程序会崩溃。
如何防止进程死亡后重新创建对话框?
例子:
- Activity gets shown - onCreateDialog/onPrepareDialog show a progress dialog - AsyncTask gets started exporting to SD card => SD card gets unmounted - Process is killed - User selects the application from task switched - Activity gets created as new => Android calls onCreateDialog/onPrepareDialog with the previously shown dialog ID
通过该活动重新创建新的不存在的AsyncTask的时间,甚至有没有SD卡。尽管如此,Android坚持要我展示一个对话框。
如何防止在创建过程中调用onCreate/PrepareDialog方法?或者唯一的选择是调出一个错误对话框。