تطبيق/نشاط Android للبدء من جديد تمامًا في كل مرة يبدأ فيها أو يستأنف؟

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

سؤال

لديّ تطبيق طفل لنظام Android وهناك بعض الاعتبارات الفريدة لهذا التطبيق نظرًا لعدم وجود تنقل في الأساس (إنه للأطفال الصغار). لا أرغب في كسر تطبيق تطبيق التطبيق الخاص بي (الذي نجح على iPhone) عن طريق إضافة زر إنهاء/إعادة تشغيل.

ما أحتاجه حقًا بسيط إلى حد ما - أريد أن يبدأ نشاطي/تطبيقي نظيفًا وجديدًا في كل مرة يبدأ فيها. سواء أكان هذا الحمل الأولي أو أيًا كان - في أي وقت يطلق عليه أي وقت ، أريد مثيلًا جديدًا تمامًا لتطبيقي.

اعتقدت في البداية أنه يمكنني الخروج/الإقلاع عن التطبيق/إنهاء التطبيق عندما يترك المستخدم. لكنني لم أجد طريقة للقيام بذلك لا تسبب تعطل في البداية. وأيضًا أن كل منشور في التدفق/المكدس حول هذه الفكرة مليئة بالأشخاص الذين يهزون أصابعهم ويقولون إنه لا ينبغي أبدًا ترك تطبيق على Android.

إذا لم أتمكن من ترك التطبيق Onexit ، فهل هناك شيء يمكنني القيام به لإعادة تشغيل نشاطي في كل مرة يتم فيها تسمى Onresume؟ (أو هل ستكون حلقة لا حصر لها؟).

سوف نقدر أي مساعدة!

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

المحلول

حاول بدء نشاطك الرئيسي في onResume, وتطهير مكدس النشاط:

public void onResume() {
    super.onResume();
    startActivity(new Intent(this, MainScreen.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}

ربما هذه ليست أعلام الصحيح التي يجب إضافتها ، ولكن تحقق من الآخر Intent الأعلام وهذا يمكن أن يفعل ما تريد!

وثيقة نية أعلام

نصائح أخرى

انتهى الأمر بالحصول على العمل بشكل جيد عن طريق استدعاء Finish () في OnPause ().

مرة أخرى ، أقدر نصيحة الأشخاص الذين يقولون "هذا ليس كيف يفعل Android الأشياء". لقد حصلت على فهم جيد لأفضل الممارسات في هذه المرحلة. هذا موقف غير عادي لنوع غير عادي من المستخدم.

في إعادة تحميلك يمكنك تجربة هذا ..

onStop();
onCreate(getIntent().getExtras());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top