【问题标题】:Proper way of Fetching request from web service on android从android上的Web服务获取请求的正确方法
【发布时间】:2012-06-04 09:22:52
【问题描述】:

我只是想知道哪种方法是使用 HTTP 请求从 Web 服务获取数据的最佳方式。使用 AsyncTask 或 AsyncTaskLoader

我在 Activity 上使用 LoaderManager 使用 AsyncTaskLoader,但在配置更改尤其是方向更改时遇到问题。它阻止加载程序调用 OnFinish()。

我也尝试过更灵活和独立的 AsyncTask,它在我之前的项目中运行良好,它仍然在 2.2 上?由于3.0---4.0更推荐使用AsyncTaskLoader 非常感谢您的意见。

【问题讨论】:

  • 当您使用 asynctaskloader 时,您可以从自定义适配器更新您的数据吗?
  • @Mohit:是的,尝试在'onLoadFinish()'中实现它,如果它有一个异常说“只有活动可以触摸它的子视图等。”你可以运行一个线程来使用 Handler 更新视图

标签: android service web android-asynctask asynctaskloader


【解决方案1】:

对于 AsyncTask,请在下面写下您要从哪里开始任务
new asnktask(youractivity.this).execute(); 并写这个类

private class asnktask extends AsyncTask<Void, Void, Integer> {


    private Context context;    
    private ProgressDialog mProgressDialog;

    public asnktask(Context _context) {
        context =_context;
    }

    @Override
    protected void onPreExecute() {
        mProgressDialog = new ProgressDialog(this.context);
        mProgressDialog.setMessage("Loading wait.....");
        mProgressDialog.setIndeterminate(true);
        mProgressDialog.setCancelable(true);
        mProgressDialog.show();
    }

    @Override
    protected Integer doInBackground(Void... params) {
//Do stuff of getting web service response
        return 1;
    }

    @Override
    protected void onPostExecute(Integer result) {
        mProgressDialog.dismiss();
}
    }

//完成!!!!!!!!!

【讨论】:

  • 我在问哪种方法最好?
  • 哦,对不起... AsyncTask 更好,因为它是单独运行的,然后是 UI 线程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多