Android:推荐的方法让PhoneStateListener永远运行?

时间:2015-10-10 00:24:57

标签: android alarmmanager phone-state-listener permanent

我写了一个应用程序,通过PhoneStateListener监视我的信号强度。我希望这个应用程序在启动时启动并永远运行。

我管理的方式如下,但我想知道是否有人可以推荐更好的方法。

我已经注册了一个在BOOT_COMPLETED上运行的BroadcastReceiver。

在这个BOOT_COMPLETED BroadcastReceiver中,我启动了一个服务。

服务启动我的PhoneStateListener。

在我的BOOT_COMPLETED BroadcastReceiver中,我也通过AlarmManager.setInexactRepeating开始定期闹钟。

每当此警报触发时,它会检查我的服务是否正在运行。如果它没有运行,它会重新启动我的服务,然后重新启动我的PhoneStateListener。

这一切似乎对我有用,但我想知道它是否是确保PhoneStateListener一直在运行(或至少在大多数时间)运行的最佳和最有效的方法

是否有更好的方法可以解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以将服务作为前台服务,在这种情况下,您的服务实际上不太可能被杀死(仅当当前打开的应用程序需要更多内存时)。

在这种情况下,您的应用必须在服务处于前台时向用户显示持续通知。

为此,您必须调用服务的startForeground()方法,并向其发送通知:

startForeground(ONGOING_NOTIFICATION_ID, notification);

查看更多信息:http://developer.android.com/guide/components/services.html#Foreground