重新启动网络上的服务更改Android

重新启动网络上的服务更改Android,android,service,tcp,connectivity,Android,Service,Tcp,Connectivity,我知道在网络更改期间不可能保持相同的套接字,但在网络更改后重新启动服务的最简单方法是什么?我认为最好的做法是收听android.net.conn.CONNECTIVITY\u CHANGE广播,但是我应该把这些代码放在哪里呢?一个服务是否可以杀死自己并重新创建自己,这样我的TCP连接也可以重新启动?或者我必须将代码放入另一个杀死TCP服务的服务中(如果是这样,我如何找到服务的运行实例来杀死它?) 谢谢您的回答。编辑: 停止你的服务就像你开始它一样 在广播接收器中: stopService(ne

我知道在网络更改期间不可能保持相同的套接字,但在网络更改后重新启动服务的最简单方法是什么?我认为最好的做法是收听android.net.conn.CONNECTIVITY\u CHANGE广播,但是我应该把这些代码放在哪里呢?一个服务是否可以杀死自己并重新创建自己,这样我的TCP连接也可以重新启动?或者我必须将代码放入另一个杀死TCP服务的服务中(如果是这样,我如何找到服务的运行实例来杀死它?)

谢谢您的回答。

编辑: 停止你的服务就像你开始它一样

在广播接收器中:

 stopService(new Intent(context, ServiceName.class));

我就是这么说的。但是,你如何杀死一个你一开始就没有启动的服务(你拥有它,但你没有启动它的意图)谢谢你-即使这个意图有额外的东西,这是否有效?我假设Android使用hashcodes来比较意图(这取决于意图的hashcode是如何计算的——包括附加值还是不包括附加值)。嗯,我认为这无关紧要。我认为它是这样工作的:1)Android在stopService中收到了您的意图2)正在寻找“ServiceName”的实例(我不知道我们是否可以启动一个类的多个服务,但我想我们可以t)3)杀死它