前几天出现了一个问题。我有一个监听 GPS 位置的应用程序。监听器是一个一直工作的后台服务,该服务将数据保存在应用程序级别,每个活动都会读取这些数据。所以,当我按下返回按钮时,我能够捕捉到这个事件并且我可以停止服务,但是当我按下 HOME 按钮时,服务仍在工作,尽管应用程序处于后台模式并且这会消耗电池,因为 GPS 总是工作。我该如何处理这个事件?我确实想在用户按下 HOME 按钮时停止所有服务,并在用户回来时再次启动它们。10倍
问问题
12420 次
6 回答
4
听起来您正在通过 onKey... 方法或在 onStop 中捕获后退按钮。您应该将代码放在onPause()方法中,以确保在应用程序进入后台时使用它。
于 2011-02-17T11:05:41.300 回答
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 回答