2009-11-28 96 views
0

我正在扩展IntentService类以在Android上运行后台服务。该服务立即启动后启动。我想定期从这项服务中弹出一个用户输入框。所以,我尝试从服务中调用一个活动,但它没有帮助。出现Force Close的可怕框并且服务消失。 任何人都可以提出一些方法来调用后台服务的活动吗?Android - 服务中的活动?

谢谢!

+1

您是否尝试过使用LogCat来查看导致强制关闭框出现的内容? – 2009-11-28 19:17:10

回答

2

我想定期从 这个服务弹出一个用户输入框。

请重新考虑这个计划。使用Notification。你的用户会感谢你。

编辑:为了澄清,我假设你正在寻找“弹出一个用户输入框”异步,没有在你的前台活动。如果是这样,那不是一个好的用户界面模式 - 当用户输入文本信息时,用户可能会很容易被打扰。

所以,我试图从 服务调用一个活动,但它并没有帮助。出现 Force Close的可怕框并且 服务死亡。

确保您从UI线程调用startActivity()。如果没有帮助,正如aforlorney所建议的那样,通过adb logcat,DDMS或Eclipse中的DDMS透视图检查LogCat,以获取异常的Java堆栈跟踪。

+0

马克在这里点+1。我还记得在Android文档中阅读过这些内容。 100次中有99次,你想弹出一个通知,用户可以在闲暇时参加。 – Konklone 2009-11-28 23:38:09

1

这与答案没有直接关系(commonsware.com已经给出了如何解决这个问题的很好的概述),但只是一个提示:如果你有一个间歇性运行代码的后台服务,您应该使用AlarmManager将服务唤醒,而不是无限期地继续。基本上,启动服务,让它创建一个PendingIntent来调用它自己,然后在必要时唤醒它自己。