首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BroadcastReceiver、IntentService和GPS回调

BroadcastReceiver、IntentService和GPS回调
EN

Stack Overflow用户
提问于 2012-04-10 23:54:53
回答 1查看 770关注 0票数 1

我使用的是BroadcastReceiver,需要根据收到的短信找到手机的位置。

我正在使用一个非常标准的类,它在回调中返回一个LocationResult,但是如果我在BroadcastReceiver类中使用它,那么它可能会花费太长的时间,并且会被操作系统杀死。

我尝试过使用服务,但如果两个事件同时发生,则会导致ANR问题。

我听说在BroadcastReceiver中使用线程是一个灾难的秘诀,所以我甚至没有尝试过。

我现在使用IntentService将传入的请求排队,并处理GPS位置查找器。我的问题是如何使用带有回调的代码,使其在onHandleIntent结束时不会死掉?我想用睡眠来代替,但它看起来不像是一个完美的解决方案。

有没有更好的方法来做这件事?我必须使用BroadcastReceiver,但需要一种聪明的方式让它在15-20秒内找到位置。

如果您有任何想法,将不胜感激!(Android noob在这里)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-11 00:02:44

我试过使用一个服务,但如果两个事件同时发生,就会导致ANR问题。

这意味着您正在主应用程序线程上执行工作,这是您始终希望避免的事情,包括在服务中。请记住,像onStartCommand()这样的方法是在主应用程序线程上调用的。

我的问题是,如何使用带有回调的代码,以便在onHandleIntent结束时不会死掉?

这就是为什么IntentService不能很好地解决您的问题。你需要一个常规的Service,但是你在你自己的后台线程中工作,当你完成工作时停止服务,等等。

我以LocationPoller的形式提供了一个概念验证实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10092131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档