آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

انجام کار بعد از اتمام دانلود

f-Dehghan  11 سال پیش  11 سال پیش
+1 0

وقتی سرعت اینترنت کم باشه یا ارتباط قطع باشه بعد از خطی که دستور دانلود دادم میره کار رو انجام بده و چون توی این کار به فایلی که قرار بوده دانلود بشه نیاز داشته ، کرش میکنه اینو چطور بنویسم؟

 if (G.special == true) {
final String filename = bitaddress.replace("/sdcard/****/final", "");
if (new File(G.DIR_FINAL + "/" + filename).exists()) {
DoYourWork();
}

else {
Log.i("LOG", "there is not " + filename);
FileDownloader.download("********.com" + filename, G.DIR_TEMP + filename, listener);
//اینجا میخوام بگم دانلود که تموم شد خط بعد رو اجرا کنه و
//اگر کانکشن قطع بود کرش نکنه
DoYourWork();
//اگر کانکشن قطع بود
G.HANDLER.post(new Runnable() {

public void run() {
Toast.makeText(G.context, "کانکشن ضعیف است", Toast.LENGTH_LONG).show();
}
});
Log.i("LOG", "is seted");
}
}
else {
//DoSomeThing
}
+1 0
شما میتونید توی یک تابع چک کنید ببنید که اینترنت گوشی وصل هست یا خیر و خروجی تابع رو هم از نوع بولین در نظر بگیرید بعد بگید که اگر اینترنت وصل بود دانلود کنه در غیر اینصورت که هیچ لینک http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-timeouts لینک (11 سال پیش)
0 0
ممنون ...برای اینکه تا دانلود تموم نشده نره به خط بعدی چی کار باید کرد؟ (11 سال پیش)
+1 0
روش ها مختلف یک راه استفاده از AsyncTask هستش که توی متد doInBackground دانلود انجام بشه و باقی کدهایی که نباید تا فایل دانلود نشده اجرا بشند توی متد onPostExecute انجام بشه. آموزش AsyncTask توی قسمت آموزشهای متنی سایت موجوده (11 سال پیش)
0 0
راه دیگه ای جز AsyncTask نداره؟ (11 سال پیش)
+1 0
همونطوری که حسین عزیز گفتن استفاده از AsyncTask روش خوبیه، ولی چون شما ProgressBar ندارید میتونید ازش استفاده نکنید. زمانی که دانلود رو انجام میدید، کافیه مقدار دانلود شده رو بگیرید و بگید اگر 100% بود این کلاس اجرا بشه. کلاس منظور DoYourWork هست. (11 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .