Java 当异步任务同时使用另一个线程时,如何设置其执行的延迟时间?

Java 当异步任务同时使用另一个线程时,如何设置其执行的延迟时间?,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我想为扩展AsyncTask的类设置延迟时间(毫秒)。但是这个类也在使用另一个java线程。有一些类可以在Android上传输Mjpeg,但这个问题有一些变化: 这是我扩展AsyncTask的类: public class GetCameraMjpeg extends AsyncTask<String, Void, MjpegInputStream> { @Override protected MjpegInputStream doInBackground(Stri

我想为扩展AsyncTask的类设置延迟时间(毫秒)。但是这个类也在使用另一个java线程。有一些类可以在Android上传输Mjpeg,但这个问题有一些变化:

这是我扩展AsyncTask的类:

public class GetCameraMjpeg extends AsyncTask<String, Void, MjpegInputStream> {

    @Override
    protected MjpegInputStream doInBackground(String... params) {
        try {
            URL url = new URL(params[0]);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            if (username != null && password != null) {
                String authEncoded = Base64.encodeToString((username + ":" + password).getBytes(), Base64.DEFAULT);
                connection.setRequestProperty("Authorization", "Basic " + authEncoded);
            }
            connection.connect();
            return new MjpegInputStream(connection.getInputStream());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(MjpegInputStream result) {
        mjpegView.setSource(result);
        mjpegView.setDisplayMode(MjpegView.SIZE_FULLSCREEN);
    }
}
我尝试过这个答案:但没有明显的区别。我想是
MjpegView
运行自己的java
线程

使用处理程序 Handler h=新的Handler(); h、 后延迟(功能、时间)

@Override
public void run() {
    Bitmap bitmap;
    Rect destRect;
    Canvas canvas = null;
    while (mjpegRun) {
        if (surfaceDone) {
            try {
                canvas = surfaceHolder.lockCanvas();
                if (canvas != null) {
                    synchronized (surfaceHolder) {
                        try {
                            bitmap = mjpegInputStream.readMjpegFrame();
                            if (displayMode != SIZE_FULLSCREEN) {
                                displayWidth = bitmap.getWidth();
                                displayHeight = bitmap.getHeight();
                            }
                            destRect = destRect(bitmap.getWidth(), bitmap.getHeight());
                            canvas.drawColor(Color.TRANSPARENT);
                            canvas.drawBitmap(bitmap, null, destRect, new Paint());
                        } catch (IOException e) {
                            e.getStackTrace();
                            Log.d(TAG, "catch IOException hit in run", e);
                        }
                    }
                }
            } finally {
                if (canvas != null) {
                    surfaceHolder.unlockCanvasAndPost(canvas);
                }
            }
        }
    }
}