我有一项服务在运行过程中运行良好。即使没有显示主要活动,它也会控制特定的广播接收器。它还以一定的时间间隔自行启动以检查一些参数。在检测到不存在广播接收器时,我可以直接停止服务,直到一个服务被注册或者它在间隔时重新启动。同时,该服务将以 START_NOT_STICKY 模式运行。
但是,当我连接到服务并注册接收器时,有没有办法从它内部将其运行状态从 START_NOT_STICKY 更改为 START_STICKY?还是我只需要在接收器中使用 isRegistered 标志,停止并重新启动服务并在 onStartCommand 中检查其值?这是一个很好的模式还是有更好的模式?
这样做的主要原因是当应用程序不需要时,不会在后台运行进程。