我正在开发一个 Android 项目。我需要使用 Android 1.6 或更高版本。
我的项目正在运行,但现在它向我显示了一些关于对话框的警告,例如
"The method dismissDialog(int) from the type Activity is deprecated"
"The method showDialog(int) from the type Activity is deprecated", etc.
所以我想“更新”我的项目来解决这些警告。
我已经阅读并制作了一些测试项目来了解 Fragments 和 DialogFragment。我已经创建了自己的 ProgressDialog,我想在我的真实项目中使用它,但是我遇到了一些问题。
public class MyProgressDialog extends DialogFragment {
public MyProgressDialog(){
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Context context = getActivity();
ProgressDialog dialog = new ProgressDialog(context);
Resources resources = context.getResources();
String message = resources.getText(R.string.wait).toString();
dialog.setMessage(message);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
return dialog;
}
}
在我的项目早期,我创建了ProgressDialog
,然后在onPrepareDialog()
方法中,我调用了AsyncTask
连接服务器、下载数据等。然后在onPostExecute
AsyncTask 中,我关闭了ProgressDialog
并启动了新的 Activity。但现在我不能这样做,因为onPrepareDialog
已弃用。
在 Activity 的 onPrepareDialog 上调用 ActionAsyncTask
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch(id){
case Constants.PROGRESS_DIALOG:
new ActionAsyncTask().execute();
break;
}
}
ActionAsyncTask 的 onPostExecute
@Override
protected void onPostExecute(Integer result) {
dismissDialog(Constants.PROGRESS_DIALOG);
}
如何解决这个问题?这样做的正确方法是什么?我想为此编写最好的代码,最有效的代码。
谢谢。