Android App正常关闭但不会再次打开

时间:2017-04-07 13:58:05

标签: android

我正在开发一个应用程序,当用户按下关闭按钮时我需要关闭它,当我从另一个调用启动器活动而不是启动时,我设法通过使用finish()函数使其工作。但是,当我再次尝试打开应用程序时,它会自动关闭。

LoginActivity(关闭按钮所在的应用程序):

public static final String closeKey = "closeKey";
//I cut off the entire onCreate function to show only the close app code
        cancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = getBaseContext().getPackageManager()
                    .getLaunchIntentForPackage( getBaseContext().getPackageName() );
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.putExtra(closeKey,"closeApp");
            startActivity(i);
            finish();
        }
    });

你可以看到我做的是我发送了一个关于意图的额外元素,这将向我的首发活动表明我希望该应用关闭。

LoadingActivity(入门应用):

     Bundle extras = getIntent().getExtras();

    if(extras == null){
        executeAnim();
    }else{
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
        finish();
    }

LoadingActivity检查intent上是否有任何额外内容,如果没有,它将触发加载动画并转到LoadingActivity,如果有一个额外的元素,它将关闭活动,因为它表明你想要关闭它。

1 个答案:

答案 0 :(得分:0)

我找到了一种让它工作的方法,不得不在LoadingActivity中为if / else添加一些验证:

    Bundle extras = getIntent().getExtras();

    if(extras == null){
        executeAnim();
    }else if (extras.getString(LoginActivity.closeKey) == null){
        executeAnim();
    }else if (extras.getString(LoginActivity.closeKey) ==  ""){
        executeAnim();
    }else {
        try{
            android.os.Process.killProcess(android.os.Process.myPid());
            System.exit(0);
            finish();
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }