主线程中的工作过多,发出警告.如何添加AsyncTask



伙计们帮助将异步任务添加到我的应用程序中。我对添加这个有意见。也许有任何暗示可以让你意识到这一点。它的rtsp视频播放器。应用程序与web服务器通信,并使用画布绘制视频。异步任务帮助修复主线程和skippedframes的问题

if (frameNum >= skipNum) {
//Log.d(TAG, String.format("onFrame: nChannel = %d, width = %d, height = %d", nChannel, width, height));
try {
Canvas canvas = surface.lockCanvas(null);
try {
int area = width * height;
int pixels[] = new int[area];
for (int i = 0; i < area; i++) {
int r = frame[3 * i];
int g = frame[3 * i + 1];
int b = frame[3 * i + 2];
if (r < 0) r += 255;
if (g < 0) g += 255;
if (b < 0) b += 255;
pixels[i] = Color.rgb(r, g, b);
}
Bitmap bmp = Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(bmp, null, videoRect, null);
} finally {
surface.unlockCanvasAndPost(canvas);
}
} catch (Exception e) {
e.printStackTrace();
}
frameNum = 0;
}
}

不确定您的Android API级别,但异步任务现在已被弃用。

此类在API 30级中已被弃用。请改用标准的java.util.concurrent或Kotlin并发实用程序。

由于您的代码是Java,这里有到Concurrent的链接:https://developer.android.com/reference/java/util/concurrent/package-summary

最新更新