【问题标题】:How to stop my app from exiting when back/home button button is pressed?按下返回/主页按钮时如何阻止我的应用程序退出?
【发布时间】:2014-02-21 09:24:09
【问题描述】:

我正在为安装它的平板电脑制作一个应用程序。我想设置一个限制,以便当按下后退按钮或主页按钮时,将提示用户输入密码,如果密码正确,应用程序将被允许退出。

【问题讨论】:

  • 你可以重写 onPause() 方法来做到这一点
  • 请不要,那将是可怕的用户体验!
  • @2Dee 该应用程序将专属于安装它的平板电脑

标签: android back-button android-homebutton


【解决方案1】:

覆盖后退按钮非常简单,只需覆盖 Activity.onBackPressed() 来做任何你想做的事情。不要调用 super() 否则会关闭 Activity!

覆盖主页按钮更成问题。这样做的唯一方法是make your app a launcher。然后按主页并选择您的应用作为默认启动器。

【讨论】:

  • 谢谢你..这是一个很大的帮助。是的,主页按钮确实有问题。如果应用程序是作为启动器制作的,我如何恢复到旧的启动器?这完全有可能吗?
  • @ChristianBurgos 是的,完全。只需进入设置,应用程序,“您的应用程序”,清除默认值。
  • 这个怎么样,如果应用程序是选择的默认启动器,那么我将如何进行设置?
  • @ChristianBurgos 这就是我认为这种方法行不通的原因。你应该重新考虑流程。一种可能是我建议的那种。
  • @ChristianBurgos 我知道一个应用程序可以通过编程方式将自己注销为默认启动器,但我不知道如何。我知道这是可能的,因为这个应用程序做到了:play.google.com/store/apps/details?id=com.whisperarts.kidsshell)
【解决方案2】:

我不确定这是否是个好主意。您以这种方式“阻止”用户。您可能可以覆盖后退按钮,但您将无法override the home button(不让应用程序成为启动器)。

我做了一个“自助服务终端”应用程序,我也有同样的要求。我最终root设备并使用这个Hide Bar应用程序。用户无法返回,管理员有一个按钮可以输入密码,进入“管理面板”。在此管理面板中,您可以按一个按钮转到启动器。从那里,您可以使用隐藏栏应用程序中包含的小部件恢复返回和主页按钮。

【讨论】:

  • 您可以完全覆盖主页按钮。看我的回答。
  • @BarryFruitman 你并没有真正覆盖它。您正在创建一个启动器。我不认为,按下主页按钮,用户会很高兴被提示使用“Sense”或“MyNiceBlockingApp”作为新的启动器。
  • 应用程序将专用于安装它的硬件/平板电脑。
  • @Enrichman 这就是为什么我说他必须第一次手动完成。
【解决方案3】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多