【问题标题】:What is the best way to implement a long running event listener实现长时间运行的事件侦听器的最佳方法是什么
【发布时间】:2013-07-18 07:48:37
【问题描述】:

我正在开发一个 Android 应用程序,我需要在其中实现一个侦听器,该侦听器接收事件并在收到此类事件时更新应用程序数据库和一些 UI 元素。侦听器需要在应用程序运行的整个过程中运行。

你们能否就如何以最佳方式实现这一点给我一些建议? 一些最佳做法?

PS:我正在考虑将此事件侦听器集成到服务中。你怎么看 ?

【问题讨论】:

  • 这取决于您的活动以及您的活动是否应该一直可见

标签: android service listener


【解决方案1】:

如果您正在考虑使用相同的服务,请在服务的 onStartCommand() 中添加 START_STICKY 作为返回值。如果 Android 操作系统因缺乏资源而将其终止,这将重新创建您的服务。 最佳实践是使用 BroadcastReceivers 并在 Manifest.xml 文件中注册它们。它们一直运行并且不会被操作系统杀死

【讨论】:

  • 谢谢,这正是我实现的方式:)
【解决方案2】:

您应该使用从 BroadcastReceiver 扩展的类。覆盖更新应用程序数据库的 onReceive 方法。

那么您应该使用 AlarmManager 类来安排事件。调度它们的方式有三种:一次事件使用 set 方法,重复事件使用 setRepeating 方法和 setInexactRepeating。

这里有一个很好的教程:Refer this links

使用这种方法,即使您的应用程序没有运行,您也可以运行侦听器,即使您的手机处于待机模式,您也可以接收事件。这是服务无法做到的。

要使用 AlarmManager 唤醒您的手机,别忘了在 Manifest 文件中添加下一行(<application> 之前):

<uses-permission android:name="android.permission.WAKE_LOCK"/>

希望这会有所帮助。

【讨论】:

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