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 缓存');
|
debugPrint('$_tag logoutCurrentAccount() - 已清除 ${_accountLocalKeys.length} 个 LocalStorage 缓存');
|
||||||
|
|
||||||
// ===== 3. 清除遥测事件队列(用户相关数据) =====
|
// ===== 3. 暂停遥测服务(停止上传、清空队列、清除用户ID) =====
|
||||||
await _telemetryStorage.clearUserData();
|
|
||||||
|
|
||||||
// ===== 4. 清除遥测服务的用户ID =====
|
|
||||||
if (TelemetryService().isInitialized) {
|
if (TelemetryService().isInitialized) {
|
||||||
TelemetryService().clearUserId();
|
await TelemetryService().pauseForLogout();
|
||||||
debugPrint('$_tag logoutCurrentAccount() - 清除 TelemetryService userId');
|
debugPrint('$_tag logoutCurrentAccount() - 已暂停 TelemetryService');
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===== 5. 清除 Sentry 用户信息 =====
|
// ===== 4. 清除 Sentry 用户信息 =====
|
||||||
if (SentryService().isInitialized) {
|
if (SentryService().isInitialized) {
|
||||||
SentryService().clearUser();
|
SentryService().clearUser();
|
||||||
debugPrint('$_tag logoutCurrentAccount() - 清除 SentryService userId');
|
debugPrint('$_tag logoutCurrentAccount() - 清除 SentryService userId');
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,23 @@ class TelemetryService {
|
||||||
debugPrint('📊 [Telemetry] User ID cleared');
|
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 {
|
Future<void> setUserOptIn(bool optIn) async {
|
||||||
await TelemetryConfig().setUserOptIn(optIn);
|
await TelemetryConfig().setUserOptIn(optIn);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue