Android 异步任务失败

Android 异步任务失败,android,android-asynctask,lag,Android,Android Asynctask,Lag,在我的活动中,我设计了一个导航抽屉,因此,当我单击片段时,我的活动挂起,如下所示: 它冻结了5~6秒,所以我想展示一个旋转的轮子。 我知道我应该扩展AsyncTask,但它不起作用! 以下是我尝试过的: private void samsung{ // TODO Auto-generated method stub Url = "/// ////////////// //////////// /////////////.php"; new loadSomeStuff()

在我的活动中,我设计了一个导航抽屉,因此,当我单击片段时,我的活动挂起,如下所示:

它冻结了5~6秒,所以我想展示一个旋转的轮子。 我知道我应该扩展AsyncTask,但它不起作用! 以下是我尝试过的:

private void samsung{
    // TODO Auto-generated method stub
    Url = "/// ////////////// //////////// /////////////.php";
    new loadSomeStuff().execute(Url);
}
下面是我的aSyncTask类:

public class loadSomeStuff extends AsyncTask<String, Integer, String> {
    ProgressDialog dialog;

    protected void onPreExecute(String f) {
        dialog = new ProgressDialog(Fragment9.this.getSherlockActivity());
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setCancelable(false);
        dialog.setIndeterminate(true);

        dialog.show();
    }

    @Override
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub
        beanClass.clear();
        list.setAdapter(null);
        String result = "";
        InputStream isr = null;
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httpost = new HttpPost(Url);
            HttpResponse resposne = httpclient.execute(httpost);
            HttpEntity entity = resposne.getEntity();
            isr = entity.getContent();
        } catch (Exception e) {
            Log.e("log_httpconnection",
                    "error in http connection" + e.toString());
            Toast.makeText(getSherlockActivity(), "No Connection",
                    Toast.LENGTH_SHORT).show();
        }

        try {
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(isr, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            isr.close();
            result = sb.toString();
        } catch (Exception e) {
            Log.e("log_json", "Error converting Result " + e.toString());
        }
        try {
            JSONArray jArray = new JSONArray(result);
            for (int i = 0; i < jArray.length(); i++) {
                JSONObject json = jArray.getJSONObject(i);
                beanClass.add(new BeanClass(json.getString("PhoneName"),
                        json.getString("ModelNumber"), json
                                .getString("PhonePrice"), json
                                .getString("imageurl")));

            }
            dbHelpersamsung.deletesamsunglebanonphones();
            dbHelpersamsung.insertthephonessamsunglebanon();
        } catch (Exception e) {
            Log.e("lag_tag", "ERROR PARSING DATA" + e.toString());
            displaylistviewsamsunglebanon();
        }
        return null;
    }

    protected void onProgressUpdate(Integer... progress) {

    }

    protected void onPostExecute(String result) {
        list.setAdapter(new MyListAdapter(getActivity(), beanClass));

    }
}
public类loadSomeStuff扩展异步任务{
进程对话;
受保护的void onPreExecute(字符串f){
dialog=newprogressdialog(Fragment9.this.getSherlockActivity());
setProgressStyle(ProgressDialog.STYLE_微调器);
对话框。可设置可取消(false);
对话框。setUndeterminate(true);
dialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
//TODO自动生成的方法存根
beanClass.clear();
list.setAdapter(空);
字符串结果=”;
InputStream isr=null;
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(Url);
HttpResponse resposne=httpclient.execute(httpost);
HttpEntity entity=resposne.getEntity();
isr=entity.getContent();
}捕获(例外e){
Log.e(“Log\u httpconnection”,
“http连接错误”+e.toString());
Toast.makeText(getSherlockActivity(),“无连接”,
吐司。长度(短)。show();
}
试一试{
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(isr,“UTF-8”),8);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
isr.close();
结果=sb.toString();
}捕获(例外e){
e(“Log_json”,“错误转换结果”+e.toString());
}
试一试{
JSONArray jArray=新JSONArray(结果);
for(int i=0;i
您有这个

  list.setAdapter(null);
还有这个

     Toast.makeText(getSherlockActivity(), "No Connection",
                Toast.LENGTH_SHORT).show();

无法从
doInbackground
更新ui。在
onPostExecute
或您
runOnUiThread

中更新ui是否有任何异常可以发布堆栈跟踪?好的,但现在导航抽屉有点滞后,然后活动屏幕变为空白,然后列表视图显示结果,微调器不显示。。我能做什么?如果您想显示进度,请将下面的设置为false
对话框。setUndeterminate(false)
;。试试这个@KingOmar,它应该会显示你需要关闭对话框。至少对我来说,我看不出有什么不对。