I have an activity, which contains 2 fragments, each fragment has 2 list views, each has an adapter. 
So I get pretty long data in json from the server, I use AsyncTask and on post execute, I parse the data. The problem is that it freezes the loading animation for 4-5 seconds. 
I have tried to use Handler thread, but the problem is still there, I must be doing something terribly wrong here. 
public class DataService extends AsyncTask<String, String, Void> {
    @Override
        protected Void doInBackground(String... params) {
        url = new URL(DATA_URL);    
        //Connection stuff
        String jsonString = stringBuilder.toString();
        jsonObject = new JSONObject(jsonString);
        //Adding data in Java Objects
    }
    @Override
    protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
             //Upcoming List in Fragment
             allDataFragment.setUpcomingDataList(UpcomingAllDataList);
             awayFragment.setUpcomingDataList(tUpcomingAwayList);
             homeFragment.setUpcomingDataList(tUpcomingHomeList);
             //Past List in Fragment            
             allDataFragment.setPastDataList(pastAllDataList);
             awayFragment.setPastDataList(pastAwayList);
             homeFragment.setPastDataList(pastHomeList);    
    }
I added log messages in adapter, and I can see that at the time of parsing rows it freezes, so it take all the post execute stuff in handler thread
       Handler handler= new Handler();
        handler.post(new Runnable() {
            @Override
            public void run() {
                    //Upcoming List in Fragment
                     allDataFragment.setUpcomingDataList(UpcomingAllDataList);
                     awayFragment.setUpcomingDataList(tUpcomingAwayList);
                     homeFragment.setUpcomingDataList(tUpcomingHomeList);
                     //Past List in Fragment            
                     allDataFragment.setPastDataList(pastAllDataList);
                     awayFragment.setPastDataList(pastAwayList);
                     homeFragment.setPastDataList(pastHomeList);    
            }                   
            });
I also tried to add a handler in Adapter but it fails to load UI component from there.
This is a snippet from my fragment code.
if (pastListView != null) {
        PastListAdapter allGamesAdapter = new PastListAdapter(getContext(), pastAllDataList);
        pastListView.setAdapter(allGamesAdapter);
        }
and in Adapter i am doing following.
  @Override
    public View getView(int position, View convertView, ViewGroup parent) {
            TextView vScore = (TextView) v.findViewById(R.id.v_score);
            TextView date = (TextView) v.findViewById(R.id.date);
            ImageView image = (ImageView) v.findViewById(R.id.iv_image);
            //7 Other views
            vScore.setText(dataList.get(position).getScore);
            date.setText(dataList.get(position).date);
             Log.d(TAG, "getView: Row");
            return v;
    }
The loading animation works fine in start but at the time it starts parsing the data in adapter, it hangs t he UI thread.
 
     
     
     
     
     
    