我是android编程新手。所以,我试图从互联网下载一个文件在异步任务和显示进度对话框,直到下载完成。但是如果我在应用程序之间切换,比如我打开另一个应用程序,进度对话框就会消失。
这是我用来显示进度对话框的代码progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Backing Up...");
progressDialog.setMax(100);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();
我做错了什么?
首先,如果你使用asynctask它运行在UI线程上,所以你必须从home键切换到暂停状态你可以覆盖onPause和onResume方法
我通过在代码中添加这些方法来解决这个问题。
@Override
public void onDestroyView()
{
if (progressDialog != null && getRetainInstance())
progressDialog.setDismissMessage(null);
super.onDestroyView();
}
@Override
public void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setRetainInstance(true);
}