2016-07-27 9 views
0

は私がフラグメントを選択すると、私のような「OnActivityCreated」でこれらのコードを入れて、アンドロイドのアプリケーションを開発しています:どのようにアプリのパフォーマンスを向上させるには?

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    btnAdd = (ImageButton) getActivity().findViewById(R.id.imageButtonTime); 
    txtTime = (TextView) getActivity().findViewById(R.id.textViewTime); 
    txtTime.setText(""); 
    listView = (ListView) getActivity().findViewById(R.id.listView); 
    time_control = new Time_Control(LoginActivity.db.getConnection()); 
    accountID = LoginActivity.Account_Id; 
    calendar = Calendar.getInstance(); 
    mYear = calendar.get(Calendar.YEAR); // current year 
    mMonth = calendar.get(Calendar.MONTH); // current month 
    mDay = calendar.get(Calendar.DAY_OF_MONTH); // current day 
    txtTime.setText(mDay + "/" + (mMonth + 1) + "/" + mYear); 
    sDate = mYear + "-" + (mMonth + 1) + "-" + mDay; 
    LoadList(); 

LoadList()データベースからデータを取得し、リストビューの上に置くために使用されます。 フラグメントを選択すると、アプリケーションのロードが非常に遅くなります。上記のコードを他の場所に置くなど、パフォーマンスを向上させる方法はありますか。

ありがとうございました!

編集:LoadList()のコードは:

public ArrayList<Time> LoadTime(int accId, String date) { 
    ArrayList<Time> arrayList = new ArrayList<Time>(); 
    try { 
     PreparedStatement query = connection.prepareStatement("exec sp_excutedtask_load ?,?"); 
     query.setInt(1, accId); 
     query.setString(2, date); 
     ResultSet resultSet = query.executeQuery(); 
     while (resultSet.next()) { 
      int id = resultSet.getInt("ID"); 
      String tagName = resultSet.getString("TagName"); 
      String taskName = resultSet.getString("TaskName"); 
      int esHrs = resultSet.getInt("EsHour"); 
      int esMin = resultSet.getInt("EsMinute"); 
      int acHrs = resultSet.getInt("AcHour"); 
      int acMin = resultSet.getInt("AcMinute"); 
      String start, end; 
      if (resultSet.getTime("Start") == null) { 
       start = ""; 
      } else { 
       start = resultSet.getTime("Start").toString(); 
      } 
      if (resultSet.getTime("End") == null) { 
       end = ""; 
      } else { 
       end = resultSet.getTime("End").toString(); 
      } 
      int run = resultSet.getInt("Running"); 
      int done = resultSet.getInt("Done"); 
      Time time = new Time(id, tagName, taskName, esHrs, esMin, acHrs, acMin, start, end, run, done); 
      arrayList.add(time); 
     } 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return arrayList; 
} 
+0

... LoadList()がこの質問に答えるコードを知っておく必要があります。 – EpicPandaForce

+0

ロード時間は、LoadList()で使用したロジックによって異なります。データベースから取得しているので、データの取得に使用したクエリを最適化し、SQLiteOpenHelperクラスをシングルトンとして維持してください – LvN

+0

投稿を編集しました。 – Huy

答えて

関連する問題