Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android.os.NetworkOnMainThreadException的替代解决方案_Java_Android_Exception Handling - Fatal编程技术网

Java android.os.NetworkOnMainThreadException的替代解决方案

Java android.os.NetworkOnMainThreadException的替代解决方案,java,android,exception-handling,Java,Android,Exception Handling,现在我正在解决这个问题 android.os.NetworkOnMainThreadException 我将connect方法放入分离的线程中,但是当线程启动时,start()方法不会调用Run(), -同时使用AsyncTask,任务不会调用doInBackground()方法 //对于异步任务,我的代码是 //对于线程,我的代码是:- ->在主要活动中 您的错误可能是因为您在UI线程上执行了一些网络操作,这是api11不允许的。我想说的是,不要创建单独的线程,只需使用异步任务类来执行网

现在我正在解决这个问题

android.os.NetworkOnMainThreadException

我将connect方法放入分离的线程中,但是当线程启动时,
start()
方法不会调用
Run()
, -同时使用
AsyncTask
,任务不会调用
doInBackground()
方法


//对于异步任务,我的代码是
//对于线程,我的代码是:-
->在主要活动中
您的
错误
可能是因为您在
UI
线程
上执行了一些
网络
操作,这是
api11
不允许的。我想说的是,不要创建单独的
线程
,只需使用
异步任务
类来执行
网络
操作。只需在
doInBackground()
中执行网络操作,并从UI线程调用AsyncTask类,如下所示:

new YourAsyncTask().execute(url);
通过创建一个独立的
线程
类并使其更加复杂,这一切都不需要花费太多精力。

感谢“Lalit Poptani”的回复,但实际上我做到了您所说的,并且execute函数没有调用“doInBackGround()”方法。
URL url = null;
        try {
            url = new URL("http://www.flickr.com/photos/51469488@N03/");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        ConnectTask backgroundTask = (ConnectTask) new ConnectTask();
        backgroundTask.setActivity(this);
        backgroundTask.execute(url);
public class ConnectThread extends Thread {

    HttpEntity entity;
    String  statue;
    LogInJSONActivity mainActivity;
    @Override
    public void run() {
        // TODO Auto-generated method stub
         mainActivity.setString("Inside Run");
         entity = connect("http://www.flickr.com/photos/51469488@N03/");
         mainActivity.setHttp(entity);
         super.run();   
    }

    public  HttpEntity connect(String url) {

        statue= "Inside Connect";
        HttpClient httpclient = new DefaultHttpClient();
        // Prepare a request object
        HttpGet httpget = new HttpGet(url);
        // Execute the request
        HttpResponse response;
        HttpEntity entity = null;
        try {
            response = httpclient.execute(httpget);
            entity = response.getEntity();
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(entity !=null)
            System.out.print("Valid Entity");
        else
            System.out.print("Null Entity");


        return entity;
    }
    public void setActivity(LogInJSONActivity act){
        mainActivity = act;
    }      
}
ConnectThread t = new ConnectThread();
        t.setActivity(this);
        t.start();
new YourAsyncTask().execute(url);