2

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

4

6 回答 6

4

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

于 2011-02-17T11:05:41.300 回答
4

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

链接 1 链接 2

于 2011-05-13T12:17:59.103 回答
2
   @Override
    protected void onUserLeaveHint() 
   { 
        // When user presses home page
        Log.v(TAG, "Home Button Pressed");
        super.onUserLeaveHint();
    }
于 2014-05-12T02:29:36.080 回答
0

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

于 2012-10-01T21:08:38.843 回答
0

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

于 2011-02-17T11:06:32.423 回答
-5

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

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

于 2011-02-17T10:55:50.090 回答