سؤال

هذا هو هيكل طلبي:

النشاط أ هو أ ListViewActivity مع زر لبدء النشاط ب.

في النشاط ب بعد الانتهاء من نموذج هناك زر لبدء النشاط ج.

النشاط ج حفظ الإعداد وإنشاء سجل جديد لتظهر في النشاط.الزر حفظ في نشاط ج قم بتشغيل النشاط أ.

إذا كان المستخدم اتبع هذا الإجراء أكثر من مرة عندما اضغط على زر العودة من عودة النشاط على ب (دون المرور عبر ج لأنه عندما بدأت أنا وضعت FLAG_ACTIVITY_NO_HISTORY) والمرة الثانية انه اضغط العودة إلى مرة أخرى ، وهذا يكرر عدد من الوقت يساوي عدد السجلات التي تم إنشاؤها.

إغلاق التطبيق مع زر العودة أصبحت عملية طويلة.

أود أن onBackPressed من النشاط دائما إغلاق التطبيق.

اللغة الإنجليزية ليست لغتي ، وآمل أن أكون واضحا.

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

المحلول

ابدأ نشاطك دائما مثل أدناه

    Intent intent = new Intent(current_activity_context, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();

نصائح أخرى

طريقة النهاية () سوف تفعل ذلك.شيء من هذا القبيل

Intent intent = new Intent(getApplicationContext(),
                Activity B.class);
        Activity A.this.startActivity(intent);

        finish();

يجب عليك تجاوز طريقة أونباكبريسد

@Override
public void OnBackPressed(){
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    super.onBackPressed();//Optional
 }

آمل أن يساعد.

جرب هذا

@Override
public void onBackPressed() {
    // Do Here what ever you want do on back press;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top