I am having networkonmainthread exception even if my network call is inside an asynctask. I call MyAsynctask to get the okhttp response and convert it to my object after.
I read some SO Post like this
1. Calling doInBackground - I'm not calling doInBackground as stated in answer I'm calling execute then get.
My Code in calling the request is.
Response response = new MyAsyncUtils.MyTask().execute(params).get();
Method
public MyObject getMyObject(){
    GenericAsyncParams params = new GenericAsyncParams(customParams.....);
    Response response = new MyAsyncUtils.MyTask().execute(params).get();
    final MyObject myObject =
      om.readValue(response.body().string(), new TypeReference<MyObject>() {
      });
    return myObject;
}
My AsyncTask is in a Utility class that I re-use.
public static class MyAsynctask extends AsyncTask<GenericAsyncParams, Void, Response>{
    @Override
    protected Response doInBackground(GenericAsyncParams... genericAsyncParamses) {
        Response response = null;
        GenericAsyncParams genericAsyncParams = genericAsyncParamses[0];
        String url = genericAsyncParams.getUrl();
        String method = genericAsyncParams.getMethod();
        RequestProcessor requestProcessor = genericAsyncParams.getRequestProcessor();
        try {
            Request.Builder builder;
            if(method.equalsIgnoreCase("POST")){
                builder = new Request.Builder()
                        .post(genericAsyncParams.getRequestBody())
                        .url(url)
                        .headers(headers);
            } else  {
                builder = new Request.Builder()
                        .headers(headers)
                        .get()
                        .url(url);
            }
            final Request request = builder.build();
            response = requestProcessor.client().newCall(request).execute();
            return response;
        } catch (Exception e){
            Log.e(TAG, String.format("ERROR.. %s", ExceptionUtils.getMessage(e)));
        }
        return response;
    }
}
Now, I may have a resolution for this, I can use callback on postExecute then use CountDownLatch to wait for the callback response before returning it to the method caller, but if there's a better way to do it please let me know guys!
Thanks!
