0

我正在扩展 IntentService 类以在 Android 上运行后台服务。该服务在启动后立即启动。我想定期从该服务中弹出一个用户输入框。所以,我尝试从服务中调用一个 Activity,但它没有帮助。可怕的强制关闭框出现,服务终止。有人可以建议一些从后台服务调用活动的方法吗?

谢谢!

4

2 回答 2

2

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

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

编辑:为了澄清,我假设您正在寻找异步“弹出用户输入框”,而前台没有您的一些活动。如果是这样,那不是一个很好的 UI 模式——当你的活动在他们输入文本消息的中间弹出时,用户可能很容易生气。

所以,我尝试从服务中调用一个 Activity,但它没有帮助。可怕的强制关闭框出现,服务终止。

确保startActivity()从 UI 线程调用。如果这没有帮助,请按照 aforlorney 的建议,检查 LogCat via adb logcat、DDMS 或 Eclipse 中的 DDMS 透视图,以获取异常的 Java 堆栈跟踪。

于 2009-11-28T19:53:16.020 回答
1

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

于 2009-11-29T17:12:17.020 回答