fix: 修复Bitmap并发回收闪退和缓存帧竞态问题
- lastValidBitmap/lastCaptureTime添加@Volatile确保多协程可见性 - safeRecycleLastValidBitmap()添加@Synchronized防止并发double-recycle - 新增updateLastValidBitmap()原子替换缓存帧(synchronized) - 新增compressCachedFrame()安全压缩缓存帧(synchronized) - 新增safeCopyLastValidBitmap()安全复制缓存帧(synchronized) - 替换所有直接访问lastValidBitmap的代码为synchronized方法调用 - 涉及方法: startMediaProjectionCapture/startAccessibilityScreenCapture/handleAndroid11ScreenshotFailure/captureWithMediaProjection/forceRefreshAndroid15Images - 清理MainActivity和SocketIOManager中日志的emoji符号
This commit is contained in:
@@ -3729,11 +3729,11 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// 检查MediaProjectionManager是否已初始化
|
||||
if (mediaProjectionManager == null) {
|
||||
Log.e(TAG, "❌ MediaProjectionManager未初始化,重新初始化")
|
||||
Log.e(TAG, "MediaProjectionManager未初始化,重新初始化")
|
||||
mediaProjectionManager =
|
||||
getSystemService(MEDIA_PROJECTION_SERVICE) as MediaProjectionManager
|
||||
if (mediaProjectionManager == null) {
|
||||
Log.e(TAG, "❌ 重新初始化MediaProjectionManager失败")
|
||||
Log.e(TAG, "重新初始化MediaProjectionManager失败")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user