diff --git a/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.h b/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.h index aa45c52e1a2d24f355fc4ba1f71529b9ed7bdb9f..4c0c8aed99282e38cd59e6bef825596f658de9e1 100644 --- a/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.h +++ b/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.h @@ -64,6 +64,10 @@ - (BOOL)startTimeSwitch; +- (void)saveANRTrackSwitch:(BOOL)on; + +- (BOOL)anrTrackSwitch; + /// 历史记录 - (NSArray *)h5historicalRecord; - (void)saveH5historicalRecordWithText:(NSString *)text; diff --git a/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.m b/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.m index 08970fc192fec66c912048811b2286162c335221..473b46920a78e6ec1d4b37691dc5e97ebba07a69 100644 --- a/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.m +++ b/iOS/DoraemonKit/Src/Core/Cache/DoraemonCacheManager.m @@ -22,6 +22,7 @@ static NSString * const kDoraemonLargeImageDetectionKey = @"doraemon_large_image static NSString * const kDoraemonH5historicalRecord = @"doraemon_historical_record"; static NSString * const kDoraemonStartTimeKey = @"doraemon_start_time_key"; static NSString * const kDoraemonStartClassKey = @"doraemon_start_class_key"; +static NSString * const kDoraemonANRTrackKey = @"doraemon_anr_track_key"; @interface DoraemonCacheManager() @@ -183,6 +184,15 @@ static NSString * const kDoraemonStartClassKey = @"doraemon_start_class_key"; return [_defaults boolForKey:kDoraemonStartTimeKey]; } +- (void)saveANRTrackSwitch:(BOOL)on { + [_defaults setBool:on forKey:kDoraemonANRTrackKey]; + [_defaults synchronize]; +} + +- (BOOL)anrTrackSwitch { + return [_defaults boolForKey:kDoraemonANRTrackKey]; +} + - (NSArray *)h5historicalRecord { return [_defaults objectForKey:kDoraemonH5historicalRecord]; } diff --git a/iOS/DoraemonKit/Src/Core/Plugin/ANR/Function/DoraemonANRManager.m b/iOS/DoraemonKit/Src/Core/Plugin/ANR/Function/DoraemonANRManager.m index 07ba3dded3b6aa8d1cf5a7057ac5c1a12dfa5c05..4606ae80c977a2eb07a068190e3bc03824155814 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/ANR/Function/DoraemonANRManager.m +++ b/iOS/DoraemonKit/Src/Core/Plugin/ANR/Function/DoraemonANRManager.m @@ -6,6 +6,7 @@ // #import "DoraemonANRManager.h" +#import "DoraemonCacheManager.h" #import "DoraemonANRTracker.h" #import "DoraemonMemoryUtil.h" #import "DoraemonAppInfoUtil.h" @@ -39,6 +40,12 @@ static int64_t const kDoraemonBlockMonitorTimeInterval = 1.; if (self) { _doraemonANRTracker = [[DoraemonANRTracker alloc] init]; _timeOut = kDoraemonBlockMonitorTimeInterval; + _anrTrackOn = [DoraemonCacheManager sharedInstance].anrTrackSwitch; + if (_anrTrackOn) { + [self start]; + } else { + [self stop]; + } } return self; @@ -77,4 +84,10 @@ static int64_t const kDoraemonBlockMonitorTimeInterval = 1.; - (void)stop { [self.doraemonANRTracker stop]; } + +- (void)setAnrTrackOn:(BOOL)anrTrackOn { + _anrTrackOn = anrTrackOn; + [[DoraemonCacheManager sharedInstance] saveANRTrackSwitch:anrTrackOn]; +} + @end