1

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

你们能给我一些关于如何以最佳方式实施的建议吗?一些最佳实践?

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

4

2 回答 2

2

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

于 2013-07-19T15:48:28.737 回答
1

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

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

这是一个很好的教程:参考这个链接

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

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

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

希望这可以帮助。

于 2013-07-18T08:05:44.080 回答