【问题标题】:Activities and services using handlers使用处理程序的活动和服务
【发布时间】:2011-04-28 11:21:15
【问题描述】:

嗨 我正在尝试在一个应用程序中使用多个服务,我希望在从其中一个服务中获取更改的值后一段时间后重新运行这些服务。 请指导我使用处理程序/计时器/广播接收器来实现这一点。

谢谢

【问题讨论】:

    标签: android service android-activity handler


    【解决方案1】:

    您应该使用发送待处理意图的 AlarmManager。您可以使用多个意图和广播接收器。在广播接收器中,您可以启动服务。这样,您可以在不同时间启动多个服务,也可以根据需要一起启动。

    您可以使用 Alarmmanager 发送重复的警报,或者您可以在其中一项服务中使用它并为您的待处理意图设置一个新时间。

    不要使用计时器!

    这样做的好处是,当 Activity 不活动时,这一切都有效。

    您可以如示例中所示绑定到服务,但如果您想将数据从服务传递到活动,您可以只使用应用程序对象或单例。另外我会使用一个 IntentService,它会自动完成主线程的工作。如果您想在应该与 Activity 更紧密交互的不同线程上做某事,我会使用 AsyncTask 或 Thread。

    【讨论】:

      【解决方案2】:

      以下页面详细描述了广播接收器类和服务在启动时的工作。 http://www.androidenea.com/2009/09/starting-android-service-after-boot.html

      它还实现了 Timer 功能...但请注意,该方法中的计时器非常快,并且会使您的模拟器无响应...或变慢。

      对于消息传递部分,请参考此线程.. 该线程中给出的程序非常酷.. 程序员的荣誉...

      Example: Communication between Activity and Service using Messaging

      问候, --拉杰什

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        • 2016-06-07
        相关资源
        最近更新 更多