【问题标题】:Back button is not closing APP in Samsung Devices三星设备中的后退按钮未关闭 APP
【发布时间】:2014-04-01 07:37:09
【问题描述】:

我在三星设备上遇到了一些奇怪的事情。

如果我从设置中完全停止 APP,然后启动它,它就可以正常工作。 但是,如果我通过按返回按钮来停止应用程序以返回 Android 主页,(请注意触发了 onDestroy 方法!),当我重新打开应用程序时,应用程序不会从头开始,它会尝试显示最后一个活动。

你们以前有遇到过这样的事情吗?

正如我所说,它只发生在三星设备中......

【问题讨论】:

  • 你重写了 onKeyDown() 吗? onBackPressed() ?
  • 不,我没有。奇怪的是,活动流程是正确的,因为触发了“onDestroy”。我在onDestroy 方法上强制使用了System.exit(0),现在它正在工作,但这太丑陋了,我不应该这样做。
  • 覆盖 onKeyDown() 和 onBackPressed() 并在里面打印日志并检查。
  • 请同时发布您的代码和 manifest.xml。
  • 您想在按下后退按钮时关闭应用程序,并且下次启动应用程序时您希望它从启动开始?

标签: android


【解决方案1】:

试试看

@Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
      moveTaskToBack(true);
    }
    return super.onKeyDown(keyCode, event);
  }

【讨论】:

  • 我确实喜欢这种方法,并且我会保留它。但是,我不喜欢只为三星设备做特定的事情。我讨厌三星。
【解决方案2】:

你可以像这样覆盖 onBackPressed() 方法

@override 
public void onBackPressed()
{
 super.onBackPressed();
 finish();// well totally finish the app
}

【讨论】:

  • super.onBackPressed() 只是调用finish()。检查source
  • 它是finish(); 而不是finish()
  • 我知道 onback 很好地称之为完成,但这很好地迫使它完成
  • 正如我在我的问题中所说,随着 onDestroy 方法被触发,活动流程被遵循,但是,由于某种原因,APP 并未完全从内存中删除,这在其他非三星设备(如 Nexus)中是这样的
猜你喜欢
  • 2015-04-09
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
相关资源
最近更新 更多