【发布时间】:2014-03-14 13:21:49
【问题描述】:
快速提问:
我提供了一项服务来监控 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);
}
显然,只有我启动该服务的第二个阅读器才能读取标签。
亲切的问候
努丹
【问题讨论】:
标签: java android android-service