【问题标题】:Reproducing the option to force close [closed]重现强制关闭的选项[关闭]
【发布时间】:2018-06-13 06:17:38
【问题描述】:

在android中有选项
设置->应用程序->你的应用程序->强制关闭

有人知道它是如何以编程方式工作的吗?
我尝试了很多方法来关闭我的应用程序以及那些无法正常工作的方法。

以及那些使用所有线程/服务完全关闭应用程序的人。

无论如何,我需要一些东西来关闭我的应用程序与线程服务和一切。

 public void turnOffApp() {
    try {
        for (IThreadController thread : Objects.threadList) {
            thread.stopThread();
        }
        Log.d(Objects.context.getString(R.string.complete), Objects.context.getString(R.string.turningOffThreads));
        finish();
    } catch (Exception e) {
        Log.d(Objects.context.getString(R.string.error), Objects.context.getString(R.string.throwErrorWhileStoppingThreads), e);
    }
}

Objects.threadList 是一个全局对象,我在其中存储所有创建的线程。 顺便说一句,当应用程序关闭或崩溃时也会触发它,然后它可以正常工作,但我也想在按钮中使用它,但这里效果不太好

【问题讨论】:

  • 那么,您想以编程方式使您的应用程序崩溃,并让您的用户发疯吗?只需生成一个 NPE。
  • Not Crash 关闭 onClick 因为我需要关闭所有线程/服务关闭你的意思是通过生成 NPE Btw 为什么我得到 -2?
  • 强制关闭发送一个 unix 信号。您可以通过向自己发送信号或致电System.exit(1); 来实现相同的效果。任何数字都可以,不必是 1。
  • 顺便说一句,强烈建议不要使用System.exit()
  • System.exit() 只重启我的应用不要关闭它

标签: android forceclose


【解决方案1】:

没有直接的方法可以杀死应用程序,尽管您可以通过按下按钮来实现这一点,您加载第一个活动并清除堆栈中的所有其他活动。现在你只剩下一个活动要处理,完成你可以按照以下方式完成:

Intent intent = new Intent(getApplicationContext(), FirstActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);

上面的代码从栈中移除除了FirstActivity之外的所有活动。要完成 FirstActivity 在 FirstActivity 的 oncreate 中输入以下代码

if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean("EXIT",false)) {
finish();
}

希望对你有帮助!

【讨论】:

  • 不关闭我的应用程序而留下所有线程和服务仅关闭最后一个活动,但除了活动之外我还有其他功能
  • 在执行上述代码之前,您始终可以选择停止后台服务,也可以在调用 Activity/Fragment onDestroy() 方法时中断和销毁线程。
  • 如果我使用完成作为关闭方法,如果我使用 System.exit(0),则没有任何反应;它重新启动 KillProces 也不起作用我尝试了更多方法但似乎没有任何工作顺便说一句我在使用关闭功能之前杀死了我的线程
  • 在您使用 finish() 方法的地方分享您的代码。
  • 当前编辑的是那个,但不能正常工作
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多