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

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

mmahmoodi  10 سال پیش  10 سال پیش
0 0

سلام  

چرا در کد زیر تا زمانی که از 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();
                    }

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

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