سؤال

لدي مشكلة. أنا جديد على Android و Java وأقوم بعمل برنامج يقوم بإيقاف تشغيل أصوات الهاتف ويخفف من الشاشة في الوقت المحدد للمستخدم. يتم كل شيء عن طريق الحصول على قيم إدخال المستخدم (ساعة ودقيقة) وإعداد المنبه بناءً على هذه القيم لإطلاق نية على broadcastreceiver التي تبدأ الخدمة التي تقوم بإيقاف تشغيل الأصوات ويخفف من الشاشة. أريد إعادة تشغيل هذا المنبه بعد إعادة التشغيل. اعتقدت أنه يمكنني ببساطة تعيين BroadcastReceiver آخر يتلقى نية boot_completed ثم يضع الإنذار الذي يطلق نية إلى broadcastreceiver المستخدمة قبل بدء الخدمة. ومشكلتي هي أنني لا أعرف كيفية وضع القيم من النشاط الذي يحصل على إدخال المستخدم إلى boradcastreceiver الذي بدأه boot_completed. أم أن هناك طريقة أخرى لتعيين نفس المنبه بناءً على إدخال المستخدم بعد إعادة التشغيل؟ في الكلمات ببساطة ، أريد ضبط المنبه تلقائيًا بعد إعادة التشغيل بنفس وقت النار مثل المنبه الذي يحدده المستخدم. اسف على سوء لغتي الانجليزية...

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

المحلول

نهجك صحيح.

الشيء الوحيد الذي تحتاج إلى إضافته هو استمراره في ديسيبل أو في أي مكان آخر. في كل مرة يقوم المستخدم بإعداد الأشياء وتتفاعل معها AlarmManager, ، ضعه أيضًا في ملف.

عندما تحصل BOOT_COMPLETED, ، قم بتحميل البيانات وقم بتعيين جميع الإنذارات السابقة.

نصائح أخرى

في بيان طلبك:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

ثم قم بتنفيذ جهاز برودكاسستير لتلقي البث:

public class SampleBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            // Set the alarm here.
        }
    }
}

لإعداد المنبه بعد إعادة التشغيل ، يمكنك اختيار قيم إنذارك من التفضيلات المشتركة أو من DB.

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