android.os.NetworkOnMainThreadException sending an email from Android

This question already has an answer here:

  • How do I fix android.os.NetworkOnMainThreadException? 48 answers

  • Which SDK version? If 14+ see this link.

    the solution is

    JUST FOR DEBUG

    add these rows

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    

    Real Case Put the code on an AsyncTask

    private class Connection extends AsyncTask {
        @Override
        protected Object doInBackground(Object... arg0) {
    
            connect();
            return null;
        }
    }
    

    then call

    new Connection().execute("");
    

    This exception means that you are trying to do Network related operation on the main UI thread. You need to do either in a seperate thread or in AsyncTask.

    The documentation says that:

    The exception that is thrown when an application attempts to perform a 
    networking operation on its main thread. This is only thrown for applications 
    targeting the Honeycomb SDK or higher. Applications targeting earlier SDK 
    versions are allowed to do networking on their main event loop threads, but it's 
    heavily discouraged
    

    See How to fix android.os.NetworkOnMainThreadException? and Android - android.os.NetworkOnMainThreadException for more. For getting more help you might need to show more code.

    Something like:

    class RetreiveFeedTask extends AsyncTask<String, Void, Void> {
    
    
        protected Void doInBackground(String... urls) {
            //Execurte the network related option here
        }
    
        protected void onPostExecute(Void param) {
    
            // TODO: do something with the feed
        }
    }
    

    This is how to execute the task:

    new RetreiveFeedTask().execute(urlToRssFeed);
    
    链接地址: http://www.djcxy.com/p/5022.html

    上一篇: 我们如何在Android中使用runOnUiThread?

    下一篇: android.os.NetworkOnMainThreadException从Android发送电子邮件