2

I am getting the error "android.os.networkonmainthreadexception" while trying to pull a json data from an url. Would some tell me why?

1 Answer 1

1

Its due to the StrictMode.ThreadPolicy. It was introduced since API Level 9 and the default thread policy had been changed since API Level 11, which in short, does not allow network operation (eg: HttpClient and HttpUrlConnection) get executed on UI thread. if you do this, you get NetworkOnMainThreadException.

The recommended way of solving this is by Using an AsyncTask so that the network request does not block the UI thread.

You can override this thread policy by adding the below code into your main activity’s onCreate() method.

if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } 
Sign up to request clarification or add additional context in comments.

2 Comments

Please do not recommend that developers override the policy.
Adding the code did work for me. Let me try to use AsyncTask.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.