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

حالت isConnected برای httpUrlConnection وجود نداره؟

goorgool  11 سال پیش  11 سال پیش
+1 0

سلام دوستان

میخواستم بدونم در قسمت دانلود که استاد توضیح دادند چطور میشه فهمید که مثلاً بدلیل قطع شدن اینترنت دانلود فایل دیگه ادامه نیافته و بتونم دستور بدم که فایل ناقص را پاک کن.

یک مشکلی هم که دارم اینه که وقتی در حین دانلود، نت رو قطع میکنم دیگه ادامه ی دستوراتی که در متد دانلود وجود داره اجرا نمیشند، چرا؟

+2 0
خب یه راهش این هست که همراه با شروع دانلود، سایز فایل رو هم یک جا ذخیره کنی تا هر موقع خواستی بتونی با فایل دانلود شده مقایسه کنی (11 سال پیش)
0 0
دانلودر استاد عالیه یکم تغییرش بدی میشه دانلودر بازار (11 سال پیش)
0 0
picaking خواستم همین کار رو بکنم ولی وقتی نت قطع میشه دیگه اصلاً متد دانلود رو ادامه نمیده که من بتونم سایزشون رو مقایسه کنم. بعد میخوام همین که نت قطع شد متوجه بشم، دستوری برای این کار وجود نداره؟ (11 سال پیش)
0 0
(11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
goorgool  11 سال پیش
0 0

منظورم اینه که آیا میشه متوجه شد که connection ارتباطش رو از دست داده؟ برای خود connection چنین متدی وجود داره؟

                     HttpURLConnection connection = (HttpURLConnection) url.openConnection();

0 0
دوستان کسی نظری نداره؟ (11 سال پیش)
پاسخ به سوال 
Vahid  11 سال پیش
+2 0

این کد با استفاده از یک BroadcastReceiver مشکل شما رو حل میکنه...
مشخص هست که مقادیر 0،1،2 وضعیت رو مشخص خواهند کرد:

 public class NetworkUtil {
public static int TYPE_WIFI = 1;
public static int TYPE_MOBILE = 2;
public static int TYPE_NOT_CONNECTED = 0;
public static final int NETWORK_STATUS_NOT_CONNECTED = 0, NETWORK_STAUS_WIFI = 1, NETWORK_STATUS_MOBILE = 2;

public static int getConnectivityStatus(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (null != activeNetwork) {
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) return TYPE_WIFI;

if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) return TYPE_MOBILE;
}
return TYPE_NOT_CONNECTED;
}

public static int getConnectivityStatusString(Context context) {
int conn = NetworkUtil.getConnectivityStatus(context);
int status = 0;
if (conn == NetworkUtil.TYPE_WIFI) {
status = NETWORK_STAUS_WIFI;
} else if (conn == NetworkUtil.TYPE_MOBILE) {
status = NETWORK_STATUS_MOBILE;
} else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {
status = NETWORK_STATUS_NOT_CONNECTED;
}
return status;
}
}

کد BroadcastReceiver:

 public class NetworkChangeReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {

int status = NetworkUtil.getConnectivityStatusString(context);
Log.e("Sulod sa network reciever", "Sulod sa network reciever");
if (!"android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) {
new ForceExitPause(context).execute();
} else {
new ResumeForceExitPause(context).execute();
}

}
}
}
 

تعریف رسیور در مانیفست:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<receiver
android:name="NetworkChangeReceiver"
android:label="NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>

دسترسی های مورد نیاز:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>

منبع

علاوه بر این، این لینک ها رو هم ببینید: لینک1 - لینک2

0 0
خیلی ممنون دوست عزیز ، بررسی میکنم ایشالا که درست شه (11 سال پیش)

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