2016-04-04 7 views
-5

私は残りのAPI呼び出しと4つのタブのページスライドタブストリップを使用しているアプリを開発していますが、私の問題は、左から右にページを表示するには遅すぎ、5から8秒間打ってタブを移動するときですか?ここで私は断片を使用しています。私のアプリは単にアプリのようなものです。 advance.`どのように私のアプリをスピードアップできますか?

class GetTasks extends AsyncTask<String, Void, String> { 

    protected void onPreExecute() { 

     progressBar.setVisibility(View.VISIBLE); 

    } 

    protected void onPostExecute(String response) { 

     progressBar.setVisibility(View.GONE); 

     if (response != null && response.length() > 0) { 

      try { 
       JSONArray jsonArray = new JSONArray(response); 
       if (jsonArray != null && jsonArray.length() > 0) { 
       for (int i = 0; i < jsonArray.length(); i++) { 

        JSONObject jsonObj = jsonArray.getJSONObject(i); 
        Gson gson = new Gson(); 
        Task task = gson.fromJson(jsonObj.toString(),Task.class); 
        tasklist.add(task); 

       } 
       }else{ 
        nodata.setVisibility(View.VISIBLE); 
       } 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 

      } 
     }else{ 
      nodata.setVisibility(View.VISIBLE); 
     } 

     Collections.reverse(tasklist); 
     ListAdapter adapter = new ListAdapter(tasklist); 
     list_view.setAdapter(adapter); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      String response = Util.excuteGet(params[0]); 
      return response; 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 
}` 
+1

メインスレッドではあまりにも多くのことをやっています。 – EpicPandaForce

+0

http://stackoverflow.com/questions/15472383/how-can-i-run-code-on-a-background-thread-on-android – Kenn

+2

以下の回答を参照してください。 –

答えて

3

おかげでそれを行うための簡単な方法は、AsyncTask(バックグラウンドサービス)を使用することです。 リサイクルビューをlistviewsの代わりに使用します。ダウンロード速度は接続によって異なりますが、ダイアログまたはプログレスバーを使用して、ユーザーに指示を与えることができます。

+0

てみの –

0

あなたの問題ではなく、パフォーマンスの向上について、あなただけのAsyncTaskを誤用。しかし、パフォーマンスに関しては、Udacity.comでこのテーマで悪いコースを見つけることはできません。https://www.udacity.com/course/android-performance--ud825

関連する問題