为什么我锁定手机后位置服务停止发送位置更新

时间:2018-09-01 13:18:07

标签: android service location

我创建了后台服务来定期获取用户位置并将其发送到服务器,如下所示:`

fileSystemIOInterpreter
  :: forall effs a
  .  (Members '[Error AppError] effs, LastMember IO effs)
  => Eff (FileSystem ': effs) a -> Eff effs a
fileSystemIOInterpreter = interpret $ \case
    ReadFile path -> do
        r <- sendM (try (F.readFileUTF8 path))
        case r of
            Left (e :: IOException) -> throwError (ioToAppErr e)
            Right f -> pure f

-- for some value of
ioToAppErr :: IOException -> AppError

一切正常,但是当我锁定手机时,它将停止发送位置更新。我已经读到这是由于系统睡眠而必须使用唤醒锁,但它也无法正常工作。当我解锁手机时,它应该开始发送位置更新,但这也没有发生。我的服务没有停止,它始终在运行状态。请在我做错或缺少某些东西的地方提供帮助。

1 个答案:

答案 0 :(得分:0)

您应该使用前台服务并将位置更新代码放入其中。 只要电源关闭,操作系统就会停止后台服务