برمجة الأندرويد الخدمات Android Services#
برمجة الأندرويد الخدمات
Android Services#
برمجة الأندرويد الخدمات Android Services#
الخدمة عبارة عن مكون يتم تشغيله في الخلفية لأداء عمليات طويلة الأمد دون الحاجة إلى التفاعل مع المستخدم ويعمل حتى إذا تم إنهاء التطبيق. يمكن أن تأخذ الخدمة في الأساس حالتين -
التسلسل. | الوصف والحالة |
---|---|
1 |
Started حالة البدء
يتم بدء تشغيل الخدمة عندما يقوم أحد مكونات التطبيق ، مثل النشاط ، ببدء تشغيله عن طريق استدعاء startService (). بمجرد بدء التشغيل ، يمكن تشغيل الخدمة في الخلفية إلى أجل غير مسمى ، حتى إذا تم تدمير المكون الذي بدأ تشغيله.
|
2 |
Bound حالة الربط
تكون الخدمة مرتبطة عندما يرتبط أحد مكونات التطبيق بها عن طريق استدعاء bindService (). توفر الخدمة المنضمة واجهة خادم عميل تتيح للمكونات التفاعل مع الخدمة وإرسال الطلبات والحصول على النتائج وحتى القيام بذلك عبر العمليات من خلال اتصال interprocess (IPC).
|
تحتوي الخدمة على أساليب رد اتصال دورة الحياة التي يمكنك تنفيذها لرصد التغييرات في حالة الخدمة ويمكنك القيام بالعمل في المرحلة المناسبة. يعرض الرسم التوضيحي التالي على اليسار دورة الحياة عند إنشاء الخدمة باستخدام startService () ويوضح الرسم البياني على اليمين دورة الحياة عندما يتم إنشاء الخدمة مع bindService (): (الصورة مجاملة: android.com)
الأساليب. ومع ذلك ، من المهم أن تفهم كل منها وتنفذ تلك التي تضمن أن تطبيقك يتصرف بالطريقة التي يتوقعها المستخدمون.
التسلسل. | الوصف والحدث الرحعي |
---|---|
1 |
onStartCommand()
يستدعي النظام هذه الطريقة عندما يطلب مكون آخر ، مثل النشاط ، بدء تشغيل الخدمة ، عن طريق استدعاء startService (). إذا قمت بتطبيق هذه الطريقة ، فأنت مسؤول عن إيقاف الخدمة عند الانتهاء من عملها ، عن طريق استدعاء طرق stopSelf () أو stopService ().
|
2 |
onBind()
.
يستدعي النظام هذه الطريقة عندما يريد مكون آخر ربط الخدمة عن طريق استدعاء bindService (). إذا قمت بتطبيق هذه الطريقة ، يجب عليك توفير واجهة يستخدمها العملاء للاتصال بالخدمة ، من خلال إرجاع كائن IBinder. يجب عليك دائمًا تنفيذ هذه الطريقة ، ولكن إذا كنت لا ترغب في السماح بالربط ، فيجب عليك العودة فارغة
|
3 |
onUnbind()
يستدعي النظام هذه الطريقة عندما يتم قطع اتصال جميع العملاء بواجهة معينة تنشرها الخدمة.
|
4 |
onRebind()
يستدعي النظام هذه الطريقة عندما يتصل عملاء جدد بالخدمة ، بعد أن تم إخطارهم مسبقًا بأن جميعهم قد قطعوا اتصالهم في onUnbind .
|
5 |
onCreate()
يستدعي النظام هذه الطريقة عند إنشاء الخدمة لأول مرة باستخدام onStartCommand () أو onBind (). هذه المكالمة مطلوبة لإجراء الإعداد لمرة واحدة.
|
6 |
onDestroy()
يستدعي النظام هذه الطريقة عندما لا تكون الخدمة مستخدمة ويتم تدميرها. يجب أن تنفذ خدمتك هذا لتنظيف أي موارد مثل سلاسل الرسائل والمستمعين المسجلين وأجهزة الاستقبال وما إلى ذلك.
|
توضح الخدمة الهيكلية التالية كل طريقة من طرق دورة الحياة -
package com.ahmedalmahallawi; import android.app.Service; import android.os.IBinder; import android.content.Intent; import android.os.Bundle; public class HelloService extends Service { /** indicates how to behave if the service is killed */ int mStartMode; /** interface for clients that bind */ IBinder mBinder; /** indicates whether onRebind should be used */ boolean mAllowRebind; /** Called when the service is being created. */ @Override public void onCreate() { } /** The service is starting, due to a call to startService() */ @Override public int onStartCommand(Intent intent, int flags, int startId) { return mStartMode; } /** A client is binding to the service with bindService() */ @Override public IBinder onBind(Intent intent) { return mBinder; } /** Called when all clients have unbound with unbindService() */ @Override public boolean onUnbind(Intent intent) { return mAllowRebind; } /** Called when a client is binding to the service with bindService()*/ @Override public void onRebind(Intent intent) { } /** Called when The service is no longer used and is being destroyed */ @Override public void onDestroy() { } }
التسميات: Android الاندرويد
<< الصفحة الرئيسية