جهاز الإنذار مع وجود نية معلقة لتحديث عنصر واجهة مستخدم

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

سؤال

لدي مطلب في أنني في حاجة إلى تحديث عنصر واجهة المستخدم مرة واحدة في كل 15 ثانية. هناك طريقة تسمى android:updatePeriodMillis ولكن يبدو أن هذا يتم إطلاق النار فقط بعد 30 دقيقة.

اتخذت مقاربة تحديث عنصر واجهة المستخدم بمساعدة AlarmManager. ال تحديثات القطعة ولكن المشكلة هي أنها تبطئ أداء الجهاز. عندما AlarmManager من طلبي يعمل على الخلفية ، يمكن أن أرى تأخيرًا كبيرًا على الجهاز للرد على أحداث المستخدم. هل من الحكمة أن يكون لديك عنصر واجهة مستخدم يتم التحديثات بشكل متكرر؟

هل هو النهج الموصى به لتحديث عنصر واجهة المستخدم.. أو هل يمكن لأي شخص أن يوفر لي بعض عينات التعليمات البرمجية أو أي تطبيق يحدث فيه التحديث بشكل متكرر؟.

لماذا هذا android:updatePeriodMillis تم تعيينه على 30 دقيقة؟ هل لأن Android لا يريد منا تحديث عنصر واجهة مستخدم قبل ذلك الفاصل الزمني؟

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

المحلول

لدي مطلب في أنني في حاجة إلى تحديث عنصر واجهة المستخدم مرة واحدة في كل 15 ثانية.

سيكون ذلك تداعيات لعمر بطاريتك. يرجى جعل هذا قابلاً للتكوين.

هناك طريقة تسمى Android: UpdatePeriodmillis ولكن يبدو أن هذا يتم إطلاق النار فقط بعد 30 دقيقة.

إنها سمة XML ، وليست طريقة ، ونعم ، لها الحد الأدنى لمدة 30 دقيقة ، بسبب الشكاوى المتعلقة بعمر البطارية من المستخدمين الذين يقومون بتثبيت أجهزة تطبيقات التطبيق التي ، على سبيل المثال ، كل 15 ثانية.

عندما يتم تشغيل جهاز الإنذار في طلبي على الخلفية ، يمكنني رؤية تأخير كبير على الجهاز للرد على أحداث المستخدم.

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

هل من الحكمة أن يكون لديك عنصر واجهة مستخدم يتم التحديثات بشكل متكرر؟

IMHO ، لا ، ولكن إذا جعلتها قابلة للتكوين ، فيمكن للمستخدم اختيار القيمة التي يشعرون أنها مناسبة.

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