【问题标题】:How to kill Android app 100% when hitting Back回击时如何 100% 杀死 Android 应用
【发布时间】:2016-03-04 02:53:29
【问题描述】:

我正在运行 Lollipop 的 Galaxy S6 上进行开发。我使用 Android Studio 使用 Android Studio 附带的模板创建了一个 ScrollView 应用程序。我只添加了以下Java代码:

@Override
public void onBackPressed() {
    Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show();
    super.onBackPressed();
}

@Override
protected void onPause() {
    Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show();
    super.onPause();
}

@Override
protected void onStop() {
    Toast.makeText(this, "onStop", Toast.LENGTH_SHORT).show();
    super.onStop();
}

@Override
protected void onDestroy() {
    Toast.makeText(this, "onDestroy", Toast.LENGTH_SHORT).show();
    super.onDestroy();
}

当我在设备上点击返回时,所有 4 条 toast 消息都按照它们在代码中出现的顺序出现。但是,当我在应用程序管理器中查看应用程序时,强制停止按钮仍处于启用状态,表明该进程仍处于活动状态。确认我还下载了第三方应用程序来查看活动进程,它在列表中显示了我的。

是否需要添加一些内容,以便在点击设备上的“后退”按钮时,该进程将 100% 终止并且不再出现在该活动进程列表中?

【问题讨论】:

  • @AnthonyTietjen 下面列出的答案已经在其他帖子中得到回答,所以它是重复的。
  • onBackPressed() 添加以下内容: Object object = null;对象.toString();那会杀了它。 ;)
  • 您是否阅读了所引用问题的前两个答案?

标签: java android


【解决方案1】:

这是 Android 上的预期行为。

Android 不保证它何时会在退出时杀死您的应用,所以我不确定您为什么认为它应该这样做。对 Android 而言,让您的应用尽可能长时间地保存在内存中会更有益,这样可以更快地恢复。

【讨论】:

  • 同意。我试过不同的安卓设备(LG、HTC、三星、索尼)。这个问题没有通用的解决方案。例如,killProcess 不适用于 HTC 设备。该进程在任务列表中仍然存在。
  • 如果你想重启你的应用程序,我建议你把你的应用程序送回后台并添加一个标志来清除你的活动堆栈。
【解决方案2】:

请在您的 OnBackPressed() 方法中使用此代码:

int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

这样您的应用将完全关闭并从正在运行的应用中删除。

【讨论】:

  • 谢谢大家,这很难确定谁是“正确的”。这几乎是一个三向领带。因为我的问题专门询问按下后退时如何做,而这个答案解释了该行代码的确切位置。上面的链接页面没有专门解决“后退”按钮。我确实喜欢trevor-e 的回答,因为Android 并不一定要让您的应用程序在按下后一直关闭,而VoidExplorer 以他在不同设备上的经验支持这一点。我会接受这个作为答案,并给其他人加 1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
相关资源
最近更新 更多