如何以编程方式重新启动android中的服务?

亚历克斯

在Android中,我有一个具有不同活动和服务的应用程序。这些活动用于直接的用户交互,其中用户可以更改数据,更新数据,输入数据等。

该应用程序还使用用户输入的数据(库存数据)运行(后台)服务。该服务会定期检查库存价格(例如,每12小时一次),如果某些条件匹配,则会向用户发出通知。

但是,作为用户,我希望能够更改此服务的设置。我启动该应用程序,并且可以在存储在的应用程序活动之一中输入更新间隔SharedPreference我可以更改值,例如,让服务每3小时检查一次库存数据。

然后,我是否必须“重新启动”服务?据我了解,操作系统中的“服务”是指服务一直运行到被某个事件停止为止。但是,如果服务没有停止,则该服务不会“通知”更新间隔已更改!因此,在我从主应用程序进行的活动中,我需要某种方式来“重新启动”服务,以便它在3小时内而不是12小时内检查股票价格!

任何想法如何做到这一点?谷歌搜索并没有真正的帮助。也许我找错了关键字...?

乔治·穆里根(George Mulligan)

一个简单的解决方案是,由于您的服务与应用程序在同一进程中运行,因此可以OnSharedPreferenceChangeListener在服务的onCreate方法中注册一个SharedPreferences与活动正在更新方法相同方法

然后,每次偏好设置更改onSharedPreferenceChanged(...)都会在您的服务中调用。您可以检查特定的更新间隔首选项何时更改,并相应地更新服务,而不必重新启动它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何以编程方式在Android 10中重新启动应用程序?

如何以编程方式重新启动iOS设备?

如何以编程方式重新启动Windows Service?

如何以编程方式重新启动Teamviewer守护程序?

以编程方式重新启动Android Things

Flask:如何以编程方式重新启动 Azure 应用程序

如何以编程方式重新启动 Desktop Bridge 应用程序

如何以编程方式重新启动和更改EC2实例的终止保护

ASP.NET Core - 如何以编程方式重新启动会话超时

如何以编程方式重新启动Windows 10 IoT应用

如何以编程方式关闭并重新启动应用程序?

如何以编程方式关闭节点程序并在不使用任何库的情况下重新启动它?

当Android重新启动服务时,在Android服务中启动的线程会如何处理?

Python Tornado Web服务Cron重新启动方式如何?

如何在不重新启动Alfresco / Tomcat服务的情况下刷新以编程方式更改的网站仪表板?

在android中重新启动后Kivy服务未启动

如何以编程方式“重新选择” TabLayout中的标签?

如何以特定用户身份在重新启动时启动Teampeak服务器

如何以编程方式从Android中的服务器发送和接收图像

如何防止重新启动正在运行的服务-Android

Android服务未在Lollipop中重新启动

我可以在Android中完全重新启动服务吗?

如何以编程方式启动OAuth会话?

如何以编程方式启动本地DynamoDB?

如何以编程方式启动JHiccup?

如何以编程方式启动Apache Cassandra

当我的服务器服务在 systemd 中重新启动时如何重新启动蓝牙服务

在Spring Boot应用程序中以编程方式重新启动HikariPool?

如何以编程方式在android中的linearlayout中给textview位置