删除更新后位置管理器更新

时间:2016-11-09 18:22:39

标签: android android-location

我的位置管理器更新有问题。每次我退出活动或退出时,整个应用程序位置管理器都会不断更新位置。

我希望应用在显示屏关闭时不断更新位置,因此我使用了

@Override
protected void onPause() {
    super.onPause();
    if (this.isFinishing()) {
        locationManager.removeUpdates(this);
         }
}

我退出或退出应用程序退出活动后,即使在locationManager.removeUpdates(this);方法萌芽中,onBackPressed()也放了<%= link_to "CSV", url_for(:format => 'csv') %> | <%= link_to "Excel", url_for(:format => 'xls') %> ,管理员仍在请求更新。

2 个答案:

答案 0 :(得分:0)

参考Understanding of isFinishing()
当用户切换到另一个应用程序时,您的应用程序不一定被操作系统杀死,直到它需要释放资源。因此,当调用onPause()时,isFinishing()可能会返回<p:treeTable var="i" value="#{reportPlanningMtefBean.tree}"> <f:facet name="header">columnGroup fine in tree</f:facet> <p:columnGroup type="header"> <p:row> <ui:repeat var="c" value="#{bean.columns}"> <p:column colspan="1" headerText="#{c.name}"/> </ui:repeat> </p:row> </p:columnGroup> <p:column><h:outputText value="#{i.value1}"/></p:column> <p:column><h:outputText value="#{i.value2}"/></p:column> </p:treeTable> 之后,当操作系统确实杀死了您的应用时,由于应用已经在后台,因此不会调用onPause() 使用true来电。

答案 1 :(得分:0)

只需将“位置管理器”和“位置更新侦听器”设置为NULL即可:

@Override
protected void onPause() {
super.onPause();
if (this.isFinishing()) {
    locationManager.removeUpdates(this);
     locationManager=null;
     }
}
相关问题