【问题标题】:Android - Activity from a service?Android - 来自服务的活动?
【发布时间】:2009-11-28 18:55:22
【问题描述】:

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

谢谢!

【问题讨论】:

  • 您是否尝试过使用 LogCat 查看导致“强制关闭”框出现的原因?

标签: android service android-activity


【解决方案1】:

我想弹出一个用户输入框 定期提供此服务。

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

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

所以,我尝试从 服务,但无济于事。这 出现可怕的强制关闭框,并且 服务终止。

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

【讨论】:

  • +1 代表马克的观点。我记得在 Android 文档中也读过这个。 100 次中有 99 次,您希望弹出一条通知,用户可以在闲暇时关注。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多