如何以编程方式强制停止我的android应用程序?

use*_*566 21 android termination forceclose

当我点击closeButton时,我想强制停止我的Android应用程序.这是我的代码.

protected void onCreate(Bundle savedInstanceState) {

  this.setContentView(R.layout.layoutxml);

  this.closeButton = (Button)this.findViewById(R.id.close);

  this.closeButton.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

      finish();

    }

  });

}
Run Code Online (Sandbox Code Playgroud)

这完成了我的申请.如果我去Settings -> Applications -> Manage applications -> <my application name>,我可以看到'强制停止'按钮已启用.这是否意味着我的申请没有完全停止?

如何完全完成我的Android应用程序并禁用"设置"中的"强制停止"按钮?从我有限的经验,当一个"异常"(前.NullPointerException异常)的应用程序时,其异常停止,看起来完全完成,而"强制停止"按钮看起来禁用.

Ted*_*opp 39

另一种方式是

android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)

如果你把这些电话放进去,我认为做这件事并不是那么糟糕onDestroy().(如果你在事件处理过程中杀死了你的进程,那么各种不好的事情 - 比如触摸焦点会进入以太 - 就会发生.)

然而,你需要一个令人信服的理由偏离最佳实践,即只需要调用finish()并让操作系统在需要的时候处理你的进程.

  • 不推荐使用此功能的原因之一是因为如果用户切换回应用程序,应用程序启动速度会更快.真的,没有理由杀死这个过程只是不好的做法. (2认同)

Ant*_*nio 13

注意:这不会杀死整个应用程序,但如果您要做的是完成所有应用程序活动,这是最好的选择.

Android≥16

finishAffinity();

Android <16

ActivityCompat.finishAffinity(Activity activity)

希望这可以帮助


m0s*_*m0s 7

杀死应用程序的一个坏方法是 System.exit(0)

编辑:我相信我欠一些解释。Android 自己处理应用程序生命周期,您不应该“强制关闭”它,我不知道有什么好的方法可以做到。一般来说,如果您的应用程序在后台仍然有效,那么如果用户再次启动它,它会快速弹出。