استدعاء طريقة من خدمة Android فور ملزمة على onCreate

StackOverflow https://stackoverflow.com/questions/3637221

  •  30-09-2019
  •  | 
  •  

سؤال

أنا متأكد من أن خدمات Android ستكون نهاية لي. لم يتبق أي شعر تقريبًا بعد الأيام القليلة الماضية ....

... على أي حال ، أنا استطراد.

في البداية ، كنت أتعرض لوقت في الحصول على الخدمة لربطه على زر واحد ، حصلت على ذلك من المساعدة هنا أمس. الآن أريد بالفعل أن تربط الخدمة بطريقة OnCreate () للنشاط. هذا الجزء ليس مشكلة ، يعمل على النحو المقصود. خدمتي هي في الواقع خدمة مقبس لتوصيل مآخذ TCP بخادم المقبس الذي كتبته. إذا قمت بإجراء المكالمة إلى الطريقة من Service Bound MboundService.StartSocketServer () داخل زر النقر ، Bingo ، يعمل بشكل رائع. لكنني بحاجة إلى إطلاق هذا فورًا عند تحميل النشاط ، لذلك مباشرة تحت استدعاء BINDSERVICE () ضمن طريقة النشاط onCreate (). عندما أضع المكالمة لبدء المقبس داخل onCreate () أحصل على قمع القوة.

تولد هذه الطريقة (startOcketServer ()) مؤشر ترابط جديد ثم يفتح المقبس على هذا الخيط على الجهاز البعيد الخاص بي. أظن أن المشكلة تكمن في توليد الخيط الجديد قبل تحميل النشاط بالكامل ... غير متأكد.

Logcat خفي إلى حد ما هنا. إنه يقول شيئًا عن فشل إرفاق الخيط ، ثم يُظهر استثناء معالج غير معالج "بسبب: java.lang.nullpointerxception" داخله.

مرة أخرى ، إذا قمت بإجراء هذه المكالمة على الطريقة داخل زر النقر ، فأنا "في العمل ، إذا كان في onCreate () يفشل. هل هناك طريقة ما داخل النشاط (على افتراض أن افتراضاتي صحي قم بتحميل قبل وضع خيط جديد) لاستدعاء startOcketServer () بعد تحميله: ala body.onload () في html؟

الرجاء مساعدتي في حفظ بقية شعري :)

تيا

هل كانت مفيدة؟

المحلول

كما كتبت في سؤال سابق:

FWIW ، bindService () غير متزامن. لن يكون لديك اتصال مقيد حتى يتم استدعاء onServicEconnected ()

في الخاص بك bindService() مكالمة ، أنت تقوم بتزويد ملف ServiceConnection هدف. سيتم استدعاء هذا الكائن مع onServiceConnected() عندما تكون الخدمة جاهزة للاستخدام. من بين أشياء أخرى ، ربما يكون هذا هو المكان الذي تملأ فيه mService. ضع مكالمتك إلى StartSocketServer() في onServiceConnected().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top