我的问题如下:
我从我的主要活动开始了我的意图服务。此 intentService 使用 audioRecord 进行一些音频处理。
但是,当我需要在我的应用程序中启动另一个活动(在这种情况下是录制视频)时,我需要在后台停止 intentService(因为它占用了音频资源)。
有没有办法从主要活动中停止 intentService?
我的问题如下:
我从我的主要活动开始了我的意图服务。此 intentService 使用 audioRecord 进行一些音频处理。
但是,当我需要在我的应用程序中启动另一个活动(在这种情况下是录制视频)时,我需要在后台停止 intentService(因为它占用了音频资源)。
有没有办法从主要活动中停止 intentService?
intent
使用与启动 IntentService 并调用相同的预先声明
stopService(intent);
如果您创建一个新的意图并使用它来停止服务,则服务将不会响应它,直到它完成对先前意图的处理。
但需要注意的是,这不会立即停止服务。所以解决这个问题的方法是有一个全局布尔变量。当它设置为 true 时,服务内的处理将执行,当您想要结束它时,将您的活动中的布尔变量设置为 false。然后你可以通过调用从自身内部停止服务
stopSelf();
您可以像这样从主要活动中使用 stopService():
stopService(new Intent(yourMainActivity.this,yourIntentService.class));