我是Android开发的新手。我想完成一项描述如下的任务:
AsyncTask
来调用外部类(另一个类将扩展xml
)来解析json
并接收ProgressDialog
。 xml
方法中执行json
和doInBackground
解析。 onPostExecute
方法中,关闭在主活动中设置的ProgressDialog
。onPostExecute
方法中解除相同的对象来实现此目的。 我认为传递一个UI对象的实例作为参数不是一个很好的程序方法,我希望必须有其他一些方法来解决。
请建议。 谢谢
答案 0 :(得分:4)
解耦这些问题的最简单方法是使用界面:
WorkDoneListener
):workDone()
。WorkDoneListener
并实施workDone()
以关闭对话框。WorkDoneListener
。将引用存储在成员字段中。onPostExecute
中,调用侦听器的workDone()
方法。答案 1 :(得分:1)
如果你的AsyncTask
太大而你想在其他文件中声明它,你应该怎么做。但是,请记住,通常您在UI类中声明AsyncTask
:
public class YourActivity extends Activity{
private class YourAsyncTask extends AsynkTask<etc.>{
}
}
事实上,如果您仅使用该AsyncTask
来自该活动(我的意思是,如果您未在其他任何地方使用它),则将AsyncTask
声明为内部类是一个很好的设计实践