2015-11-06 57 views
-2

我试图从here中提取数据。我想提取所有数据并将其打印在日志猫上,我正在使用AsyncTask来获取数据,但数据未被抓取。Asynctask不起作用

Toast没有显示出来,Log Cat窗口也没有打印出任何东西。

这里是我的代码:

package com.example.lashit.bill; 

import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 

import org.json.JSONObject; 

import java.io.BufferedInputStream; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class Login extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     new MyTask(); 
    } 

    private void readStream(InputStream in) 
    { 
     Log.e("TAG", in.toString()); 
    } 

    class MyTask extends AsyncTask<URL , Integer, JSONObject> 
    { 
     @Override 
     protected void onPreExecute() { 
     } 

     @Override 
     protected JSONObject doInBackground(URL... s) { 
      try { 
       URL url = new URL("http://researchweb.iiit.ac.in/~lashit.jain/data"); 
       Toast.makeText(Login.this, "Hello Lashit", Toast.LENGTH_SHORT).show(); 
       HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
       urlConnection.connect(); 
       urlConnection.getResponseCode(); 
       InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
       readStream(in); 
       urlConnection.disconnect(); 
      } catch (java.io.IOException e) { 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     protected void onProgressUpdate(Integer... values) { 
     } 

     @Override 
     protected void onPostExecute(JSONObject jsonObject) { 
     } 
    } 
} 

请告诉我,我该怎么错在何处。

注意:链接中提供的数据不是保密的,仅供学习之用。

UPD1:

登录猫:

11-06 17:12:03.544 5433-5433/? I/art: Late-enabling -Xcheck:jni

11-06 17:12:04.008 5433-5477/com.example.lashit.bill D/OpenGLRenderer: Render dirty regions requested: true

11-06 17:12:04.026 5433-5433/com.example.lashit.bill D/Atlas: Validating map...

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107_msm8226_LA.BF.1.1__release_AU()

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: OpenGL ES Shader Compiler Version: E031.25.01.03

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: Build Date: 10/28/14 Tue

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: Local Branch:

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: Remote Branch: quic/l_LNX.LA.3.6

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: Local Patches: NONE

11-06 17:12:04.154 5433-5477/com.example.lashit.bill I/Adreno-EGL: Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107 + cb93e16 + f50fe49 + d7c18e6 + 5b9a565 + 0f3a25d + 607156e + 75511aa + e4d16c0 + 686f3eb + 211a271 + dd281ee + NOTHING

11-06 17:12:04.157 5433-5477/com.example.lashit.bill I/OpenGLRenderer: Initialized EGL, version 1.4

11-06 17:12:04.194 5433-5477/com.example.lashit.bill D/OpenGLRenderer: Enabling debug mode 0

11-06 17:12:08.274 5433-5684/com.example.lashit.bill E/TAG: [email protected]

11-06 17:12:36.697 5433-5443/com.example.lashit.bill W/art: Suspending all threads took: 5.339ms

+1

删除'Toast.makeText(Login.this, “你好Lashit”,Toast.LENGTH_SHORT).show();''从InBackground(....)' –

+0

即使我删除logcat不会打印出数据 –

+1

您是否在manifest中添加了Internet权限..? –

回答

3

做像

new MyTask().execute(); 

并且还从InBackground(....)除去

Toast.makeText(Login.this, "Hello Lashit", Toast.LENGTH_SHORT).show(); 
+0

应用停止运行,只要我这样做 –

+1

@udhy学习[如何使用AsyncTask?](http://www.compiletimeerror.com/2013/01/why-and-how-to-use-asynctask.html #.VjyG01R97IU) –

+0

我试过..但我面临问题。 –

1

使用它。我已经跟你的网址测试...

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try { 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     new TheTask().execute("http://researchweb.iiit.ac.in/~lashit.jain/data"); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 



    class TheTask extends AsyncTask<String,String,String> 
    { 

      ProgressDialog pd=null; 

      @Override 
      protected void onPreExecute() { 
       // TODO Auto-generated method stub 
       super.onPreExecute(); 
       pd = new ProgressDialog(MainActivity.this); 
       pd.show(); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       try 
        { 
         HttpClient httpclient = new DefaultHttpClient(); 
         HttpPost method = new HttpPost(params[0]); 
         HttpResponse response = httpclient.execute(method); 
         HttpEntity entity = response.getEntity(); 
         if(entity != null){ 
          return EntityUtils.toString(entity); 
         } 
         else{ 
          return "No string."; 
         } 
        } 
        catch(Exception e){ 
         return "Network problem"; 
        } 

      } 

      @Override 
      protected void onPostExecute(String result) { 
       // TODO Auto-generated method stub 
       super.onPostExecute(result); 

       Log.e("result",result); 

       if(pd!=null) pd.dismiss(); 
      } 




     } 
} 
+0

我正在使用SDK版本23,我不再使用apache org,因为在这个版本中不推荐使用它们。 –