2016-02-02 38 views
0

我正在使用Android Studio實現應用程序。 我有一個用例如下:
當用戶點擊導航抽屜時,我將一個碎片充氣到main_activity。
因此,我從服務器獲取所需的數據作爲JSON並將其插入到SQLite中,最後我填充片段。
我使用的AsyncTask類讀取JSON和插入數據Android I /編舞:跳過了xxx幀

public class AsyncTaskRunner extends AsyncTask<Void, Void, Void> { 
     @Override 
     protected Void doInBackground(Void... params) { 
      try { 
       Log.i(TAG, "doInBackground"); 
       queue = VolleySingleton.getInstance().getRequestQueue(); 

       StringRequest stringRequest = new StringRequest(Request.Method.GET, 
         Constants.URL_ADVERTISEMENTS, 
         new Response.Listener<String>() { 
          @Override 
          public void onResponse(final String response) { 
           try { 
            jsonArray = new JSONArray(response); 
            writeDataToDB(); 
            loadDataFromLocalDataBase(); 

            SimpleDateFormat dateFormat = new SimpleDateFormat(Constants.DATE_FORMAT); 
            SharedPreferences setting = getActivity().getSharedPreferences(Constants.SETTING_NAME, Context.MODE_PRIVATE); 
            Calendar calendar = Calendar.getInstance(); 

            SharedPreferences.Editor editor = setting.edit(); 
            String now = dateFormat.format(calendar.getTime()); 
            editor.putString(Constants.LAST_ADVERTISEMENT_SYNC_DATE, now); 
            editor.commit(); 

           } catch (Exception e) { 
            Log.e(TAG, "DEVELOPER:" + e.getMessage()); 
           } 

          } 
         }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Log.e(TAG, "onErrorResponse occured :" + error.getMessage()); 

        } 
       }); 

       stringRequest.setTag(TAG); 
       queue.add(stringRequest); 

      } catch (Exception e) { 
       Log.e(TAG, "Load data has error:" + e.getMessage()); 

      } 
      return null; 
     } 


    }` 
+0

你的問題是什麼?你想調試'信息'日誌嗎? –

+0

[該應用程序可能在其主線程上做了太多工作]的可能重複(http://stackoverflow.com/questions/14678593/the-application-may-be-doing-too-much-work-on-its - 主線程) – 0X0nosugar

回答

0

最後,我包裹onResponse方法的主體具有的AsyncTask和我的問題就解決了。