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

چرا اینترفیس تا زمانی که داخل هندلر نیست کار نمیکنه ؟

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

سلام  

چرا در کد زیر تا زمانی که از handler استفاده نکنم اینترفیسی که ساختم به نام OnSignupdataListener  در کد اصلی صدا زده نمیشه ولی وقتی اونو داخل هندلر میزارم مشکل برطرف میشه 

public void signup (){
    ModuleWebservice module = new ModuleWebservice();
    final ModuleWebservice.Listener listener = new ModuleWebservice.Listener() {
        @Override
        public void onDataReceive(final String data) {
          
             //manzoram einjast
            G.handler.post(new Runnable() {
                @Override
                public void run() {


                    try {
                        JSONObject json = new JSONObject(data);
                        OnSignupdataListener.onDataReceived((String) json.get("mas"));


                    } catch (JSONException e) {
                        OnSignupdataListener.onDataReceived(null);
                        e.printStackTrace();
                    }

                }
            });
                }

نظرات

کاشی زاده 10 سال پیش
احتمالا OnSignupdataListener تغییری رو روی UI داره اعمال میکنه .
mmahmoodi 10 سال پیش
OnSignupdataListener اینترفیس هست و روی ترد ui اجرا میشه . برای امتحان هم فقط از log استفاده کردم . ولی به هیچ وجه کد پاس داده شده اجرا نمیشه
mmahmoodi 10 سال پیش
مشکل من با اجرا اون تیکه کد در هندلر حل شده ولی دلیلش کلافم کرده
چون اون ور از یه ترد دیگه داره صدا زده می شه فک کنم همین باشه
mmahmoodi 10 سال پیش
بله حق با شماست به warning توجه ای نکرده بودم java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

هنوز پاسخی ثبت نشده است


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