سؤال

أنا أكتب نشاطًا ، يقوم بتحميل البيانات من خادم ويعرضه كقائمة باستخدام ArrayAdapter. لذلك ، أقوم بإظهار حوار تقدم أي تحميل ، بينما يقوم بتحميل جميع البيانات من الخادم. ثم أرفض الحوار في معالج. مشكلتي هي أنه عندما أقوم بتغيير الاتجاه ، يتم عرض مربع حوار التقدم مرة أخرى ، وهو أمر غير مطلوب ، لأن جميع البيانات يتم عرضها بالفعل؟

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

المحلول

أود أن أقول أن لديك خياران:
إما أن تجبر نشاطك على عدم أن تكون قادرًا على تغيير الاتجاه:

<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation"> 

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

أو اخترت منع عرض مربع الحوار عندما يتم عرضه بالفعل ، أو عند تشغيل مؤشر ترابط الخلفية. هذا سهل هو استخدام Asynctask لجزء التنزيل الخاص بك ، لأنه يمكنك استخدام asynctask.getStatus التي ستعيدك حالة المهمة. إذا كان بالفعل في حالة الانتهاء ، فيجب عليك إلغاء مربع الحوار.

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