Java Android-对活动调用finish()不会阻止它运行

Java Android-对活动调用finish()不会阻止它运行,java,android,Java,Android,因此,我查找了与此类似的问题,并遵循了这些线程中的建议,但它似乎没有改变我的行为 因此,我正在编写一个应用程序,基本上可以根据GPS onLocationChanged呼叫来通知用户何时走得太快或太慢。我重写了onBackPressed方法以完成并返回,但是当我返回到主活动时,该活动继续在后台运行 要明确的是,我确实希望活动在应用程序最小化或屏幕关闭时运行。我只希望它停止时,用户返回到菜单即,点击返回按钮 下面是指向pastebin上的类的链接: 谢谢你的帮助=D使用onDestroy方法取消

因此,我查找了与此类似的问题,并遵循了这些线程中的建议,但它似乎没有改变我的行为

因此,我正在编写一个应用程序,基本上可以根据GPS onLocationChanged呼叫来通知用户何时走得太快或太慢。我重写了onBackPressed方法以完成并返回,但是当我返回到主活动时,该活动继续在后台运行

要明确的是,我确实希望活动在应用程序最小化或屏幕关闭时运行。我只希望它停止时,用户返回到菜单即,点击返回按钮

下面是指向pastebin上的类的链接:


谢谢你的帮助=D

使用onDestroy方法取消订阅您的位置侦听器。
但是,GPS处理所需的可能是一项服务,而不是一项活动。

您需要删除该侦听器的更新

@Override
protected void onDestroy() {
    locationManager.removeUpdates(locationListener);
    super.onDestroy();
}

检查您必须首先了解android lifecycle以了解答案检查开发人员文档中的android活动生命周期,并对服务进行研究,如果您想停止位置服务,则在调用super.ondestory之前覆盖活动生命周期中的ondestory方法;只需取消订阅定位服务,即可停止定位服务@Dale Diaz这里是了解生命周期和服务生命周期的链接,那么我将如何做到这一点?我应该重写onDestroy方法吗?我以前从来没有这样做过,所以请原谅我的无知。服务和活动之间的区别是什么?我最初尝试将其作为服务运行,但似乎无法从中获取位置信息,因此显示信息很困难。现在来看,我假设我的活动中应该只有setValue方法,它运行服务,所以服务可以调用这些方法来更新值?我假设一个服务在后台运行,一个活动在前台的显示屏上运行。在DaleDiaz重新搜索有关它的更多信息