我创建了后台服务来定期获取用户位置并将其发送到服务器,如下所示:`
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
一切正常,但是当我锁定手机时,它将停止发送位置更新。我已经读到这是由于系统睡眠而必须使用唤醒锁,但它也无法正常工作。当我解锁手机时,它应该开始发送位置更新,但这也没有发生。我的服务没有停止,它始终在运行状态。请在我做错或缺少某些东西的地方提供帮助。
答案 0 :(得分:0)
您应该使用前台服务并将位置更新代码放入其中。 只要电源关闭,操作系统就会停止后台服务