ここに私のコードです。スレッドは1回だけ実行されます
public void showCallFragment(){
address_phone = new ArrayList<>();
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
OyumDataBaseHelper dbh = new OyumDataBaseHelper(Address_Activity.this);
dbh.OpenDatabase();
for (int i = 0; i < addressIds.size(); i++) {
Cursor cr1 = dbh.getPhone(addressIds.get(i));
cr1.moveToFirst();
ArrayList<String> phoneList = new ArrayList<>();
do {
phoneList.add(cr1.getString(cr1.getColumnIndex(TableData.TableInfo.ph_phone_number)));
} while (cr1.moveToNext());
address_phone.add(phoneList);
cr1.close();
}
}
});
thread1.start();
}
この関数は、OnCreate(Bundle)メソッドから呼び出されています。私は自分のアクティビティでリストビューを使用しています。リストビューはonClick関数でdialogFragmentを開きます。問題は、以前のアクティビティに戻り、リストビューのアクティビティを開くときです。今回はonClick関数にエラーがあります。関数showDialogFragment()は実行されますが、スレッドはまったく動作しません! )以前の活動に行くとき
1)、onResumeあなたの方法を起動させる方法()メソッドはありません再びのonCreate((と呼ばれている):
グレート代わりに、簡単なAsyncTaskを使用することができます!この解決法はうまくいかなかったが、うまくいかなかった? –
@ Yo'dilawar、あなたは睡眠機能を逃しています。また、この回答をupvoteしてください...ありがとう –