2017-09-24 5 views
0

私は自分のコードを実行すると、それが正しく設定されているようにあなたのAsyncTaskが見えますので、onPostExecute()doInBackgroun()によって返さContentListを受け取ることになります「ヌル」 `私のAsyncTask doInBackground()がonPostExecute()に値を渡していないのはなぜですか?

private class MessageActivityLoaderTask extends AsyncTask<Void, Void, Contentlist> { 
    private LinkedMultiValueMap<String, String> formData; 
    Activity activity; 

    public MessageActivityLoaderTask(Activity activity) { 
     this.activity = activity; 
    } 

    @Override 
    protected void onPreExecute() { 
     formData = new LinkedMultiValueMap<String, String>(); 
     mProgress.setMessage("Please wait.."); 
     mProgress.show(); 
    } 

    @Override 
    protected Contentlist doInBackground(Void... params) { 
     String url = getString(R.string.base_url) + "/example/example1/1"; 
     Contentlist mess = null; 
     try { 
      mess = RestUtils.exchangeFormData(url, HttpMethod.GET, formData, Contentlist.class); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      mProgress.dismiss(); 
     } 
     return mess; 

    } 

    protected void onPostExecute(Contentlist result) { 

     if (result== null) { 
      Toast message = Toast.makeText(ListobjectsActivity.this, "result is empty", Toast.LENGTH_SHORT); 
      message.show(); 
     } else { 
      ListactivityAdapter adapter = new ListactivityAdapter(this.activity, result.getContents()); 

      ListView list = (ListView) activity.findViewById(R.id.account); 
      list.setAdapter(adapter); 
      mProgress.dismiss(); 
     } 

    }` 
+0

はあなたが、あなたが不足しているテンプレートパラメータを '追加する必要がありますexchangeFromDataのコード(0 –

+0

を呼び出しているすべての例外を取得しているかどうかを確認する必要があります... AsyncTask <空白を拡張、void、Contentlist> {...}それを動作させる –

+0

を投稿することが可能になる方法にexchangeFromData – k3b

答えて

2

として値を返します。 onPostExecute()nullと表示されているので、doInBackground()はnullを返しています。つまり、doInBackground()のいずれかに例外が発生し、messは、catchまたはRestUtils.exchangeFormData()がnullを返すことによって、null以外の値に設定されることはありません。

この領域のコードをデバッグして、実際に何が起こっているのかを確認することをお勧めします。 AsyncTask問題になる可能性は低いです。

関連する問題