退出Android应用程序

退出Android应用程序,android,Android,我的应用程序包含12个活动。我可以一次单击退出整个应用程序吗?finish()仅完成单个活动和上一个已启动的活动。请帮助我解决此问题启动要从中关闭所有活动的活动时,请在意图中添加一个标志 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( this); alertDialogBuilder.setTitle("Exit App?"); a

我的应用程序包含12个活动。我可以一次单击退出整个应用程序吗?finish()仅完成单个活动和上一个已启动的活动。请帮助我解决此问题

启动要从中关闭所有活动的活动时,请在意图中添加一个标志

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                this);
        alertDialogBuilder.setTitle("Exit App?");
        alertDialogBuilder
                .setMessage("Click yes to exit!")
                .setCancelable(false)
                .setPositiveButton("No",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                dialog.cancel();
                            }
                        })

                .setNegativeButton("Yes",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                moveTaskToBack(true);
                                android.os.Process
                                        .killProcess(android.os.Process
                                                .myPid());
                                System.exit(0);

                            }
                        });
  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

这将使您当前的活动处于顶部,因此当您完成此任务时,您的任务将完成

创建所有活动的静态实例

public class Activity1 extends FragmentActivity {

    private static Activity1 sActivity;

    public static Activity1 getsActivity() {
        return sActivity;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sActivity = this;

}

    @Override
    protected void onDestroy() {
        super.onDestroy();
        sActivity = null
    }
}
}
现在,在实用程序类中创建一个exit方法,如,并开始从更高的层次终止活动,然后从应用程序中的任何位置调用它

public static void exitApp(){
    if(Acitivity10.getsActivity() != null){
    Activity10.getsActivity.finish();   
}
    if(Acitivity9.getsActivity() != null){
    Activity9.getsActivity.finish();    
}
-
-
if(Acitvity1.getsActivity()!= null){
    Activty1.getsActivity().finish();
}
}

Sorry@DemoSharma,它不工作。不使用系统,退出()。有很多理由不这么做,但主要是因为它搞砸了Androids应用程序的内存管理。每次键入新搜索时,它都会选择新的搜索活动。你需要能够处理多个相同类型的活动。嗯,这样我们就不能处理杀死多个相同类型的活动,cz它只会杀死当前的活动,其余的活动将保持不变。我们可能会使用一组weakreference。也许一个带有WeakReferences和回调的ArrayList会将空引用从列表中删除,这样它就不会无法控制地增长。确切地说,ArrayList在这种情况下可以工作,但我认为对于上述情况,它可以正常工作。不是吗?我不敢说。如果OP一次只有每个活动的一个实例,它就足够了。