【发布时间】:2011-08-02 18:29:11
【问题描述】:
我几乎完成了一个 Android 应用程序的开发。我使用 GPS 位置和短信接收器类。我可以看到,如果我按“HOME”(房子),它仍在运行。我想在按下主页按钮时关闭 GPS 监听器和 SMS_RECEIVER。
我正在使用 eclipse 和 windows。
【问题讨论】:
标签: android backgroundworker kill-process
我几乎完成了一个 Android 应用程序的开发。我使用 GPS 位置和短信接收器类。我可以看到,如果我按“HOME”(房子),它仍在运行。我想在按下主页按钮时关闭 GPS 监听器和 SMS_RECEIVER。
我正在使用 eclipse 和 windows。
【问题讨论】:
标签: android backgroundworker kill-process
您可以监听 onStop 事件并关闭监听器。
注意:也许 onPause 或 onDestroy 可能是更好的选择。阅读activity life-cycle 并选择最佳点来执行此操作。
【讨论】:
使用主页按钮退出将使您的应用程序运行(据我了解,主页更像是一个“最小化”按钮)。使用 back 完全关闭。要覆盖主页按钮功能以实际退出,请使用:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_HOME:
finish();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
【讨论】:
如果您使用广播接收器(您可能使用单独的类并在 AndroidManifest.xml 中声明接收器),请考虑将它们设为您的 Activity 的类成员。 Activity 类内部覆盖 onResume 和 onPause 并在那里注册和注销接收器。
【讨论】: