在Android中,我有一个具有不同活动和服务的应用程序。这些活动用于直接的用户交互,其中用户可以更改数据,更新数据,输入数据等。
该应用程序还使用用户输入的数据(库存数据)运行(后台)服务。该服务会定期检查库存价格(例如,每12小时一次),如果某些条件匹配,则会向用户发出通知。
但是,作为用户,我希望能够更改此服务的设置。我启动该应用程序,并且可以在存储在的应用程序活动之一中输入更新间隔SharedPreference
。我可以更改值,例如,让服务每3小时检查一次库存数据。
然后,我是否必须“重新启动”服务?据我了解,操作系统中的“服务”是指服务一直运行到被某个事件停止为止。但是,如果服务没有停止,则该服务不会“通知”更新间隔已更改!因此,在我从主应用程序进行的活动中,我需要某种方式来“重新启动”服务,以便它在3小时内而不是12小时内检查股票价格!
任何想法如何做到这一点?谷歌搜索并没有真正的帮助。也许我找错了关键字...?
一个简单的解决方案是,由于您的服务与应用程序在同一进程中运行,因此可以OnSharedPreferenceChangeListener
在服务的onCreate
方法中注册一个SharedPreferences
与活动正在更新的方法相同的方法。
然后,每次偏好设置更改onSharedPreferenceChanged(...)
都会在您的服务中调用。您可以检查特定的更新间隔首选项何时更改,并相应地更新服务,而不必重新启动它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句