当前位置: 首页 > 知识库问答 >
问题:

Android FusedLocationApi。requestLocationUpdates后台:应用程序终止时停止IntentService

贾飞鸿
2023-03-14

我正在构建一个应用程序,即使应用程序在后台,也需要保持位置跟踪。基本上,我正在使用播放服务的GoogleApiClientLocationServices。FusedLocationApi.request位置更新方法来调用IntentService

下面的代码是我如何在活动的后台触发位置更新:

private void startLocationUpdatesOnBackground() { 

    mLocationRequest = LocationRequest.create()
                .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
                .setInterval(1000)
                .setFastestInterval(1000);

    pendingIntent = PendingIntent.getService(this, 0, 
        new Intent(this, LocationBackgroundService.class), PendingIntent.FLAG_UPDATE_CURRENT); 

    LocationServices.FusedLocationApi.
        requestLocationUpdates(mGoogleApiClient, mLocationRequest, pendingIntent);
}

效果很好
但是,当用户(通过任务管理器)终止应用程序时,我想停止此IntentService(称为LocationBackgroundService) 我该怎么做

共有1个答案

钱欣悦
2023-03-14

尝试:

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);

http://developer.android.com/intl/es/training/location/receive-location-updates.html#stop-更新

 类似资料:
  • 问题内容: 我有一个媒体播放器服务,可在整个应用程序的后台播放音乐,例如: 问题在于,当用户更改应用程序或进入手机主屏幕(应用程序在后台运行)时,音乐仍在播放。 我试图停止它和方法,但是当我更改活动时这会停止音乐,这是我不希望的(我希望音乐在用户浏览活动时继续播放)。 更新资料 我尝试了广播: 我加了 在音乐服务的onCreate和接收事件的方法中: 在应用程序类中,我这样做: 但是音乐不会恢复

  • 问题内容: 我正在为我的学校创建一个应用程序,该应用程序应每n分钟检查一次网站上是否有新标记。为此,当用户首次登录时,实际标记的编号将保存在“ UserDefaults”中。当应用终止时,n分钟后,将重新计算标记的数量,并将其与前一个标记进行比较,并在更改数量时发送通知。 我想知道是否有一种方法可以执行此任务。我尝试在-applicationWillTerminate-中创建一个计时器,但只触发了

  • 后台服务是停止的,从最近在oppo&vivo手机中删除我的应用程序时,&广播累西弗在那种情况下也不工作。

  • 我试图重新创建Connect四,我成功了。但我想通过频繁地切换颜色,给玩家一个获胜的四张光盘在哪里的指示。我对线程和编程中的时间概念是新的。 我也成功地给了用户这个指示,但是在关闭应用程序之后,控制台仍然会给出输出,也是在使用SetonCloserEquest时。 代码如下:

  • 我创建了一个自定义后台服务,它正在扩展IntentService。当我的应用程序进入后台时,我会调用这个类。startService()。Firsly onStartCommand在我返回START_STICKY的地方被调用(就像我读过一些其他帖子,以保持我的服务处于活动状态,并在由于内存不足而被终止时根据需要重新创建)。在那之后,我将实现onHandleIntent(intent)方法,从调用者