بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل با AsyncTask و ProgressDialog فوری
سلام من یه AsyncTask دارم که داخلش یه ProgressDialog نشون میدم تا کارش تموم بشه گاهی درست کار می کنه گاهی خطای هندلر اینساید ترد میده
بهترین روش چیه که همه جا بتونم از این قطعه کد استفاده کنم
class UpdateFromWeb extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
try {
progressDialog2 = new ProgressDialog(G.CurrentActivity);
progressDialog2.setMessage(message);
progressDialog2.setIndeterminate(false);
progressDialog2.setCancelable(false);
progressDialog2.show();
} catch (Exception e) {
e.printStackTrace();
}
}
private void UpdateList() {
SQLiteDatabase db = G.dbHelper.getReadableDatabase();
if ((G.database == null) || (G.database.isOpen() == false)) {
G.database = G.dbHelper.getWritableDatabase();
}
String Sql = "Delete from KalaId ";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("Req", "K"));
params.add(new BasicNameValuePair("Res", "A"));
JSONObject json = jParser.makeHttpRequest(url, "POST",
params);
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
jK = json.getJSONArray(TAG);
for (int i = 0; i < jk.length(); i++) {
JSONObject c = jK.getJSONObject(i);
String Code = c.getString(Code);
String Name = c.getString(Name1);
String s = "error";
try {
ContentValues cv = new ContentValues();
cv.put("Code", Code);
cv.put("Name1", Name1);
db.insert("Id", null, cv);
} catch (NullPointerException exception) {
exception.printStackTrace();
} catch (Exception e) {
s = "error";
}
}
}
} catch (JSONException | IllegalStateException e) {
e.printStackTrace();
db.close();
}
}
@Override
protected String doInBackground(String... args) {
publishProgress(message);
UpdateList();
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
try {
progressDialog2.setMessage(values[0].toString());
} catch (NullPointerException e) {
e.printStackTrace();
}
}
@Override
protected void onPostExecute(String file_url) {
try {
progressDialog2.dismiss();
} catch (NullPointerException e1) {
e1.printStackTrace();
}
try {
((ActivityMain) context).showdata();
} catch (ClassCastException e) {
e.printStackTrace();
}
};
}
تقریبا همه جا به همین شکل نوشتم
0
0
شما ProgressDialog ساخته شده رو درون یک ترد قرار دهید و بجای try catch از Handler استفاده کنید چون که از خاصیت set که فقط مختص به Thread UI هست استفاده کردین، اگه بازم خطا وجود داشت try catch رو مجددا بزارید ! (10 سال پیش)
0
0
میتونی یه مثال بهم بدی روی همین کد (10 سال پیش)
0
0
کسی می تونه مثالی برام بزنه (10 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .