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;
}
... LoadList()がこの質問に答えるコードを知っておく必要があります。 – EpicPandaForce
ロード時間は、LoadList()で使用したロジックによって異なります。データベースから取得しているので、データの取得に使用したクエリを最適化し、SQLiteOpenHelperクラスをシングルトンとして維持してください – LvN
投稿を編集しました。 – Huy