سؤال

في تطبيق Android الخاص بي، أ خدمة يعمل في الخلفية ويسجل قراءات GPS إلى قاعدة بيانات.يرى المستخدم نشاطًا يقدمه له أزرار الراديو.أود أيضًا تسجيل زر الاختيار المحدد حاليًا في قاعدة البيانات.

كيف يمكنني الوصول إلى كائن زر الاختيار من الخدمة؟

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

المحلول

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

الطريقة الأكثر تعقيدًا لتجنب التفضيلات هي أن تبدأ الخدمة باستخدام context.startService() (بحيث تظل قيد التشغيل حتى إذا لم يكن النشاط موجودًا) ثم يقوم النشاط باستدعاء context.bindService() (بدء تشغيل الخدمة إذا لم تكن قيد التشغيل) لإرجاع كعب روتين IBinder الذي يمكنه الاتصال به.لهذا النهج، أنصحك بإلقاء نظرة على العروض التوضيحية لواجهة برمجة تطبيقات الخدمة.

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