【问题标题】:How to handle that the application is minimized by HOME button如何处理应用程序被HOME按钮最小化
【发布时间】:2011-02-17 10:52:49
【问题描述】:

几天前出现了一个问题。 我有一个监听 GPS 位置的应用程序。监听器是一个一直工作的后台服务,该服务将数据保存在应用程序级别,每个活动都会读取这些数据。所以,当我按下返回按钮时,我能够捕捉到这个事件并且我可以停止服务,但是当我按下 HOME 按钮时,服务仍在工作,尽管应用程序处于后台模式并且这会消耗电池,因为 GPS 总是工作。我该如何处理这个事件?我确实想在用户按下 HOME 按钮时停止所有服务,并在用户回来时再次启动它们。 10 倍

【问题讨论】:

  • 这是一个非常古老的问题,似乎没有答案。只是想给出我最好的解决方案:我理解问题不是处理主页按钮,而是让应用程序在后台运行的事件。 Android 为应用程序的背景和前景等事件提供句柄,我建议您使用它来分别禁用和启用您的服务。我希望这会有所帮助:)

标签: android gps android-homebutton


【解决方案1】:

听起来您正在通过 onKey... 方法或 onStop 捕捉后退按钮。您应该将代码放在onPause() 方法中,以确保在应用程序进入后台时使用它。

【讨论】:

  • 同样,您必须(重新)在onResume() 中启动这些服务。
  • 我不能把我的代码放在 onPause() 方法中,因为当我开始一个新的活动时,旧的会停止服务。如果新活动也需要 GPS 信息会怎样?
  • 新的可以重启。这与您按下后退按钮并且用户转到需要该服务的上一个活动时的逻辑相同。
【解决方案2】:

您无法在 Android 应用程序中处理主页按钮事件。 Google 已将其仅供内部使用。

LINK 1 LINK 2

【讨论】:

    【解决方案3】:
       @Override
        protected void onUserLeaveHint() 
       { 
            // When user presses home page
            Log.v(TAG, "Home Button Pressed");
            super.onUserLeaveHint();
        }
    

    【讨论】:

      【解决方案4】:

      您可以创建一个 OnKeyListener,并检查按下的键是否为 Home。不过,我从未尝试过。

      【讨论】:

        【解决方案5】:

        创建一个名为 customActivity 的自定义活动扩展了 Activity 现在覆盖方法(在 customActivity 中)以捕获主页按钮事件并停止您的服务(在应用程序类中创建和启动服务)。现在为任何 activity_class 扩展 customActivity 而不是 Activity。

        【讨论】:

        • 老兄,主页按钮没有事件。
        【解决方案6】:

        长按HOME键,它会列出正在运行的进程,选择你想要的,然后优雅的退出。

        或 从主页 -> 设置 -> 应用程序 -> 管理应用程序 你可以杀死不需要的进程。

        【讨论】:

        • 哈哈我知道这是一篇旧帖子,但这实际上让我笑得很大声!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-06
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多