私のアプリケーションで私は非同期でAlertDialogを使用しています。しかし、データがデータベースに保存されている時点でフリーズします。私はそれを実行し続けるために何ができますか?いつか完全に実行されますが、データベースにアクセスすると特定の時間が経過すると停止します。データベースにデータを保存するとAndroid AlertDialogがフリーズする
class BackGroundTasks extends AsyncTask<String, String, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
if (dialog == null) {
dialog = ProgressDialog.show(mActivity, null,
"Please wait ...", true);
}
}
@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
CheckInternetConnection internet = new CheckInternetConnection(
mActivity);
if (!internet.HaveNetworkConnection()) {
return null;
}
return null;
}
protected void onPostExecute(Void result) {
super.onPostExecute(result);
try {
CheckInternetConnection internet = new CheckInternetConnection(
getApplicationContext());
if (!internet.HaveNetworkConnection()) {
showToast("No Internet Connection.");
return;
} else {
setUpdatedBarcodes();
}
}
}
}
private boolean setUpdatedBarcodes(
ArrayList<Model_BarcodeDetail> changedBarcodeList2) {
try {
int i = 0;
BarcodeDatabase barcodeDatabase = new
BarcodeDatabase(mActivity);
barcodeDatabase.open();
for (Model_BarcodeDetail model : changedBarcodeList2) {
barcodeDatabase.updateEntry(model, userId);
}
barcodeDatabase.close();
if (RefList1.equals(RefList)) {
if (dialog != null) {
dialog.dismiss(); // cancelling Async dialog here after
data is saved in DB
}
showToast("Barcodes updated successfully");
}
} catch (Exception e) {
Log.i("Exception caught in: ", "setDownloadedBarcodes method");
e.printStackTrace();
return false;
}
return true;
}
それは何かエラーを表示しますか?あなたはログ猫を共有できますか? – SaravInfern
エラーは表示されません。 AlertDialogは進行を停止します。 –
AsyncTaskを正しく利用していないということがあります。 setUpdatedbarCodes()をdoInBackgroundに移動する必要があります。 –