بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ارور skia decoder->decode returned false هنگام دانلود

مدیریت گفتگو
goorgool 11 سال پیش
آخرین تغییر: 11 سال پیش

با عرض سلام

هنگام دانلود فایل توسط دانلودر استاد زمانی که اینترنت قطع میشه این ارور : skia decoder->decode returned false در LogCat نمایش داده میشه و سایر دستورات اجرا نمیشند، شبیه به این میمونه که ترد در دستور زیر گیر میکنه :

کسی راه حلی داره؟

 (len = inputStream.read(buffer))

نظرات

پاسخ‌ها 2

Rabbit 11 سال پیش

از کلاس connectionDetector زیر استفاده کن

 public class ConnectionDetector {

    private Context _context;


    public ConnectionDetector(Context context) {
        this._context = context;
    }


    public boolean isConnectingToInternet() {
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null)
        {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }

        }
        return false;
    }

}

اگر اینترنت قطع بود به کاربر بگو که اینترنتت قطعِ

ConnectionDetector cnd = new ConnectionDetector(YourCurrentClass.this);
if (cnd.isConnectingToInternet()) 
{ }
else
{ }



نظرات

goorgool 11 سال پیش
مرسی بابت راهنمایی ولی یک مشکلی که هست وقتی اینترنت طرف قطع میشه اصلاً سایر دستورات داخل ترد دانلود اجرا نمیشند که من بخوام بررسی کنم که نت قطعِ یا نه
Rabbit 11 سال پیش
به خاطر اینه که تو ترد با اینترنت کار میکنی تا وقتی اون خط انجام نشه نمیره سراغ سایر دستورات و چون نت قطع هست اون خط هم اجرا نمیشه. اگه ابتدای ترد چک کنی مشکلی پیش نمی‌آید. اگه نشد نهایتا میتونی بیرون ترد دسترسی رو چک کنی.
goorgool 11 سال پیش
rabbit خیلی ممنون بابت راهنمایی
goorgool 11 سال پیش
اگر ابتدای ترد چک کنم و نت در ابتدا وصل باشه به داخل ترد میره و اگر در حین دانلود قطع شه دوباره همین مشکل گیر کردن پیش میاد، ولی اگر خارج از ترد دسترسی رو چک کنم یعنی مثلاً بگم هر 5 ثانیه یکبار چک کن که نت وصل هست یه نه؟
Rabbit 11 سال پیش

5 ثانیه یکبار میشه، ولی سربار برنامه زیاد میشه از کلاس زیر استفاده کن. یک لیسنر که هروقت اینترنت قطع می‌شه میگه.

public class NetworkStateReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
     Log.d("app","Network connectivity change");
     if(intent.getExtras()!=null) {
        NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
        if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
            Log.i("app","Network "+ni.getTypeName()+" connected");
        }
     }
     if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
            Log.d("app","There's no network connectivity");
     }
   }
}

و داخل منیفست بنویس:

 <receiver android:name=".NetworkStateReceiver">
   <intent-filter>
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
   </intent-filter>
</receiver>

نظرات

goorgool 11 سال پیش
خیلی خیلی لطف کردی دوست عزیز

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