feat: 修复节点切换bug

This commit is contained in:
speakeloudest 2025-12-04 07:37:39 -08:00
parent d63b3bfc3c
commit 17860e333c
2 changed files with 23 additions and 12 deletions

View File

@ -1504,6 +1504,7 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
},
(_) {
//
KRSingBoxImp.instance.kr_startNodeSelectionMonitor(tag);
KRLogUtil.kr_i('✅ selectOutbound 调用成功', tag: 'HomeController');
},
);

View File

@ -1635,9 +1635,7 @@ class KRSingBoxImp {
KRLogUtil.kr_i('🛑 停止 SingBox 服务...', tag: 'SingBox');
//
_nodeSelectionTimer?.cancel();
_nodeSelectionTimer = null;
KRLogUtil.kr_i('✅ 节点选择监控已停止', tag: 'SingBox');
kr_resetNodeSelectionMonitor();
await Future.delayed(const Duration(milliseconds: 100));
@ -1977,7 +1975,22 @@ class KRSingBoxImp {
// 🔄 auto
// urltest
_nodeSelectionTimer?.cancel();
kr_startNodeSelectionMonitor(tag);
}
///
Directory get directory =>
Directory(p.join(kr_configDics.workingDir.path, "configs"));
File _file(String fileName) {
return File(p.join(directory.path, "$fileName.json"));
}
File _tempFile(String fileName) => _file("$fileName.tmp");
///
void kr_startNodeSelectionMonitor(String tag) {
kr_resetNodeSelectionMonitor();
if (tag != 'auto') {
KRLogUtil.kr_i('🔁 启动节点选择监控,防止被 auto 覆盖', tag: 'SingBox');
_nodeSelectionTimer =
@ -1997,16 +2010,13 @@ class KRSingBoxImp {
}
}
///
Directory get directory =>
Directory(p.join(kr_configDics.workingDir.path, "configs"));
File _file(String fileName) {
return File(p.join(directory.path, "$fileName.json"));
///
void kr_resetNodeSelectionMonitor() {
_nodeSelectionTimer?.cancel();
_nodeSelectionTimer = null;
KRLogUtil.kr_i('✅ 节点选择监控已停止', tag: 'SingBox');
}
File _tempFile(String fileName) => _file("$fileName.tmp");
// File tempFile(String fileName) => file("$fileName.tmp");
Future<void> kr_urlTest(String groupTag) async {