سؤال

كيف يمكنني قتل جميع أنشطة طلبي؟

حاولت استخدام this.finish() لكنه يقتل نشاط واحد فقط.

في الواقع ، أود عندما يلمس المستخدم زر الخلف (في واحد فقط من الأنشطة) ، فإن التطبيق لفعل الشيء نفسه كما لو كان يضغط على زر الصفحة الرئيسية.

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

المحلول

يمكنك ضبط android:noHistory="true" لجميع أنشطتك في AndroidManifest.xml. وبالتالي لن يضعوا أنفسهم على كومة التاريخ وسيقدمك زر العودة إلى الشاشة الرئيسية.

نصائح أخرى

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

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

@Override
public void onBackPressed() {
    Intent i = new Intent(Intent.ACTION_MAIN);
    i.addCategory(Intent.CATEGORY_HOME);
    startActivity(i);
}

إن وضع ذلك في النشاط سيعود إلى المنزل عند الضغط عليه. لاحظ أن التنفيذ الأصلي لـ onBackPressed تتضمن الطريقة مكالمة إلى Super ، تمت إزالتها عن قصد. أعلم أن هذا السؤال قديم للغاية ، لكنه يسأل صراحةً شيئًا آخر

لقتل جميع الأنشطة ، استخدم هذه الكود على onbackpressed.

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount()>0) {
       getFragmentManager().popBackStackImmediate();            
    } else {
          finishAffinity();
          System.exit(0);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top