我知道VpnService是一个服务,并且stopSelf()用于停止服务本身(至少从调用onDestroy()开始就好了。)
问题是,当我在服务实例中调用stopSelf()时,顶部的通知(在调用VpnService.Builder.establish()时出现)不会自行清除。
另外,我注意到VPN设置(连接,路由,名称服务器)在通知仍然存在的情况下保持不变,因此Android和VpnService之间存在脱节。
有人可以帮我编程取消VPN吗?
答案 0 :(得分:5)
经过一系列测试后,如果VpnService.Builder.establish()返回的ParcelFileDescriptor中的FD被关闭,那么通知就会被清除。
因此,在本机方面,如果关闭对FD的所有引用,通知将清除。务必在FD上实际调用close()。