fix(mobile-app): 退出登录时停止遥测上传
- TelemetryService 添加 pauseForLogout() 方法 - 退出登录时先停止定期上传再清空队列 - 避免退出后继续上传导致等待 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
3d68d1f6f6
commit
a8261e110a
|
|
@ -405,16 +405,13 @@ class MultiAccountService {
|
|||
}
|
||||
debugPrint('$_tag logoutCurrentAccount() - 已清除 ${_accountLocalKeys.length} 个 LocalStorage 缓存');
|
||||
|
||||
// ===== 3. 清除遥测事件队列(用户相关数据) =====
|
||||
await _telemetryStorage.clearUserData();
|
||||
|
||||
// ===== 4. 清除遥测服务的用户ID =====
|
||||
// ===== 3. 暂停遥测服务(停止上传、清空队列、清除用户ID) =====
|
||||
if (TelemetryService().isInitialized) {
|
||||
TelemetryService().clearUserId();
|
||||
debugPrint('$_tag logoutCurrentAccount() - 清除 TelemetryService userId');
|
||||
await TelemetryService().pauseForLogout();
|
||||
debugPrint('$_tag logoutCurrentAccount() - 已暂停 TelemetryService');
|
||||
}
|
||||
|
||||
// ===== 5. 清除 Sentry 用户信息 =====
|
||||
// ===== 4. 清除 Sentry 用户信息 =====
|
||||
if (SentryService().isInitialized) {
|
||||
SentryService().clearUser();
|
||||
debugPrint('$_tag logoutCurrentAccount() - 清除 SentryService userId');
|
||||
|
|
|
|||
|
|
@ -291,6 +291,23 @@ class TelemetryService {
|
|||
debugPrint('📊 [Telemetry] User ID cleared');
|
||||
}
|
||||
|
||||
/// 暂停遥测上传(退出登录时调用)
|
||||
/// 停止定期上传任务,清空事件队列
|
||||
Future<void> pauseForLogout() async {
|
||||
_uploader.stopPeriodicUpload();
|
||||
await _storage.clearEventQueue();
|
||||
_userId = null;
|
||||
debugPrint('📊 [Telemetry] Paused for logout');
|
||||
}
|
||||
|
||||
/// 恢复遥测上传(登录后调用)
|
||||
void resumeAfterLogin() {
|
||||
if (TelemetryConfig().globalEnabled) {
|
||||
_uploader.startPeriodicUpload();
|
||||
debugPrint('📊 [Telemetry] Resumed after login');
|
||||
}
|
||||
}
|
||||
|
||||
/// 设置用户是否同意数据收集
|
||||
Future<void> setUserOptIn(bool optIn) async {
|
||||
await TelemetryConfig().setUserOptIn(optIn);
|
||||
|
|
|
|||
Loading…
Reference in New Issue