实现长时间运行的事件侦听器的最佳方法是什么

时间:2013-07-18 07:48:37

标签: android service listener

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

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

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

2 个答案:

答案 0 :(得分:2)

如果您正考虑在服务的onStartCommand()内使用相同的服务,请添加START_STICKY作为返回值。如果Android操作系统因资源不足而导致服务中断,则会重新创建您的服务。 最佳做法是使用BroadcastReceivers并在Manifest.xml文件中注册它们。它们一直运行,不会被操作系统杀死

答案 1 :(得分:1)

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

然后你应该使用AlarmManager类来安排事件。有三种方式来安排它们:使用set方法的一次事件,使用setRepeating方法的重复事件和setInexactRepeating。

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

使用这种方法,即使您的应用程序未运行,您也可以让监听器运行,即使您的移动设备处于待机模式,您也可以接收事件。这是服务无法做到的事情。

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

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

希望这有帮助。