开发者

How to save a Progress Dialog state correctly?

In my app when i do some long work i'm using a Progress Dialog while the work isn't finished. I'm looking for it in every place but without sucess. Everything that i founded is all about saving user interface elements states.

Then, i would like to know how i can save progress dialog state correctly ?

I want this working because when the orientation screen change the app crashes.

Shoul i use onSaveInstanceState() method ? How ? I try using saving as a bundle but without succes...

Any advice would be n开发者_运维知识库ice...

thanks


I think, your dialog crashes on orientation change because you are not using

@Override
protected Dialog onCreateDialog(int dialogID, Bundle args)

and

showDialog(dialogID);

to show your dialog. I had the same problem with an alert dialog. As I see it, if you don't create dialog that way, it becomes linked to your activity, and when activity is dead, the system finds that a dialog still try to access that dead activity, not new one.


You need to add this to the manifest file for the activity in which you are showing the dialog:

android:configChanges="keyboardHidden|orientation"


to handle the screen orientation you must use onRetainNonConfigurationInstance()

you can find a more extensive explanation about screen orientation here: Faster Screen Orientation.


The way I do this in my applications is overriding the onConfigurationChanged() method in the Activity like so:

@Override
    public void onConfigurationChanged(Configuration config) {
        //Just switch the layout without respawning the activity
        super.onConfigurationChanged(config);   
    }

This hasn't given me any issues as of yet and my Activity doesn't reload or restart when the orientation is changed.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜