SurfaceView в Android не вызывает SurfaceCreated ()? - PullRequest
0 голосов
/ 19 января 2019

Вот проблема.Почему мой вид поверхности не вызывает поверхность SurfaceCreated ()?

Вот мой вид поверхности:

public class Controller extends SurfaceView implements SurfaceHolder.Callback {

private Thread thread;
private Context context;

public class Controller extends SurfaceView implements SurfaceHolder.Callback {
private Thread thread;
private Context context;

Controller(Context context) {
    super(context);
    this.context = context;
    this.setClickable(true);
    this.setFocusable(true);
    setBackground();
    this.setOnTouchListener(new SurfaceOnTouchListener(context));
    Log.d(TAG, "I get this log");
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    Log.d(TAG,"I don't receive this log in the logcat");
    this.thread = new Thread(holder, this);
    thread.run();
    thread.setRunning(true);
}

ниже этого у меня есть метод onDraw(), который, кажется, запускается только один раз, когда веськласс создается, но, видимо, до метода surfaceCreated().Весь код внутри и после этого метода игнорируется, включая поток.

Я сомневался, что это из-за this.setOnTouchListener(new SurfaceOnTouchListener(context)); Я использую там GestureDetector и, в частности, методы onFling (), и, что интересно, я всегда получаю два системных журнала.(что я не понимаю) об этом, сразу после журнала «Controller run», который работает:

    2019-01-19 20:27:24.277 4517-4517/com.example.myapplication2 D/ContentValues: controller 
    2019-01-19 20:27:24.351 4517-4536/com.example.myapplication2 D/OpenGLRenderer: HWUI GL Pipeline
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 I/zygote: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 02019-01-19 20:27:24.039 4517-4517/? I/zygote: Not late-enabling -Xcheck:jni (already on)
    2019-01-19 20:27:24.052 4517-4517/? W/zygote: Unexpected CPU variant for X86 using defaults: x86
    2019-01-19 20:27:24.166 4517-4517/com.example.myapplication2 I/InstantRun: starting instant run server: is main process
    2019-01-19 20:27:24.242 4517-4517/com.example.myapplication2 D/ContentValues: Main Act
    2019-01-19 20:27:24.277 4517-4517/com.example.myapplication2 D/ContentValues: controller Runs
    2019-01-19 20:27:24.351 4517-4536/com.example.myapplication2 D/OpenGLRenderer: HWUI GL Pipeline
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 I/zygote: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 I/OpenGLRenderer: Initialized EGL, version 1.4
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 D/OpenGLRenderer: Swap behavior 1
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
    2019-01-19 20:27:24.381 4517-4536/com.example.myapplication2 D/OpenGLRenderer: Swap behavior 0
    2019-01-19 20:27:24.393 4517-4536/com.example.myapplication2 D/EGL_emulation: eglCreateContext: 0xc929f6c0: maj 2 min 0 rcv 2
    2019-01-19 20:27:24.395 4517-4536/com.example.myapplication2 D/EGL_emulation: eglMakeCurrent: 0xc929f6c0: ver 2 0 (tinfo 0xdc1bd3a0)
    2019-01-19 20:27:24.442 4517-4517/com.example.myapplication2 D/ContentValues: Drawing...
    2019-01-19 20:27:24.443 4517-4536/com.example.myapplication2 D/EGL_emulation: eglMakeCurrent: 0xc929f6c0: ver 2 0 (tinfo 0xdc1bd3a0)

Однако после удаления всего customOnTouchListener проблема не исчезла, поэтому я думаю, что это не проблема.Есть идеи, что может быть причиной всего этого?

...