gpt4 book ai didi

java - 运行服务两次

转载 作者:行者123 更新时间:2023-11-29 21:12:22 25 4
gpt4 key购买 nike

快速提问:

我提供了一项服务来监控 RFID 阅读器,如果它读取了一些东西,它会过滤 ID n 东西,这是有效的。

现在我的论坛上有 2 位读者,我需要听取两位读者的意见。我认为最好的方法是为我使用的每个阅读器启动一项服务,因为将来可能会有更多的阅读器。但是关于 startService(intent); 的文档中有这一部分:

“如果该服务尚未运行,它将被实例化并启动(如果需要,为其创建一个进程);如果它正在运行,那么它将保持运行状态。”

所以我第二次尝试启动该服务时,它只是将现有服务更改为我调用它时使用的第二个端口。

有什么方法可以启动服务两次,还是我必须想出其他办法?

这是我启动服务的方式:

private static final String devicePathIn = "/dev/ttyUSB1";
private static final String devicePathOut = "/dev/ttyUSB0";

在 MainActivity 的 onCeate 中:

startServiceOnPort(devicePathOut);
startServiceOnPort(devicePathIn);

还有方法 startServiceOnPort:

private void startServiceOnPort(String port){
Intent intent = new Intent(this, RFIDService.class);
intent.putExtra("port", port);
startService(intent);
}

显然只有我启动服务的第二个阅读器能够读取标签。

亲切的问候

野丹

最佳答案

不,您不能启动服务的第二个实例。您应该修改您的服务以支持使用线程的多个 RFID 阅读器。将 startService 发送到已在运行的服务只会传递新的 Intent

关于java - 运行服务两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com