Android: تشغيل مهمة خلفية باستخدام جهاز الإنذار
-
27-09-2019 - |
سؤال
أنا أكتب تطبيقًا يحتاج إلى التحقق بشكل دوري من الخادم للحصول على رسائل جديدة وإخطار المستخدم. لقد رأيت بعض الأمثلة التي تستخدم AlarmManager لضرب broadcastreciever والتي تبدو وكأنها الشيء الصحيح الذي يجب القيام به ، لكن يبدو أنني لا أستطيع أن أجعله يعمل.
هل يمكن لأي شخص أن يريني تعليميًا خطوة بخطوة لهذا النوع من الأشياء (تكرار الإنذار الذي يؤدي إلى نوع من رمز الخلفية الذي يطلق إشعارًا)؟
تيا
المحلول
هنا مثال كامل: http://android-in-practice.googlecode.com/svn/trunk/ch02/dealdroidwithservice/
النمط الذي يستخدمه هذا المثال ، وتأسيسه الذي يبدو أنه يعمل بشكل جيد ، هو استخدام جهاز استقبال التمهيد لإعداد المنبه (وبالطبع تحقق أيضًا لبدء الاقتراع من الرئيسي الخاص بك نشاط أيضًا ، للحالة عند تثبيت تطبيقك ولا يتم تشغيل النظام) ولديه المنبه إرسال نية لجهاز استقبال آخر: http://android-in-practice.googlecode.com/svn/trunk/ch02/dealdroidwithservice/src/com/manning/aip/dealdroid/dealbootreceiver.java
ثم من المنبه ابدأ veentservice: http://android-in-practice.googlecode.com/svn/trunk/ch02/dealdroidwithservice/src/com/manning/aip/dealdroid/dealalarmreceiver.java
منك veentservice ثم قم بإجراء مكالمة شبكتك للاستطلاع للبيانات ، أو أي شيء تحتاج إلى القيام به. veentservice يضع عملك تلقائيًا في موضوع خلفية ، إنه مفيد للغاية:http://android-in-practice.googlecode.com/svn/trunk/ch02/dealdroidwithservice/src/com/manning/aip/dealdroid/dealservice.java
تحقق من المستندات لهذه الفئات أيضًا ، والكثير من هناك.
التحذير مع هذا المثال هو أنه يفعل ليس تعامل مع فجوة قفل Wake (رمز Commonsware الممتاز يفعل ذلك إذا كنت في حاجة إليها) ، ولكنه قد يمنحك بعض الأفكار الأخرى حول كيفية معالجة "الاستطلاع باستخدام الإنذار والخدمة".
تحديث: الرمز موجود الآن: https://github.com/charliecollins/android-in-practice