title: Why is my surfaceCreated never called
body: <p>I'm a noobie in android dev and I'm having a issue. I'm trying to make a simple game using SurfaceView. But surfaceCreated is never called when I'm launching the app. </p>
  
  <p>I'm using <a href="https://stackoverflow.com/a/24889558/9108386">his</a> answer to use less ram with the background
  <strong>Here is where the setcontentView is placed:</strong></p>
  
  <pre><code>call_surfaceView = new class_surfaceView(cMainActivity);
  // Setup your SurfaceView
  SurfaceView surfaceView = call_surfaceView;  // use any SurfaceView you want
  surfaceView.setZOrderOnTop(true);
  surfaceView.getHolder().setFormat(PixelFormat.TRANSPARENT);
  
  // Setup your ImageView
  ImageView bgImagePanel = new ImageView(cMainActivity);
  bgImagePanel.setBackgroundResource(R.drawable.background); // use any Bitmap or BitmapDrawable you want
  
  // Use a RelativeLayout to overlap both SurfaceView and ImageView
  RelativeLayout.LayoutParams fillParentLayout = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
  RelativeLayout rootPanel = new RelativeLayout(cMainActivity);
  rootPanel.setLayoutParams(fillParentLayout);
  rootPanel.addView(bgImagePanel, fillParentLayout);
  rootPanel.addView(surfaceView, fillParentLayout);
  setContentView(rootPanel);
  </code></pre>
  
  <p>and here is <strong>my surfaceView code:</strong> </p>
  
  <pre><code>import android.content.Context;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.graphics.Canvas;
  import android.graphics.PorterDuff;
  import android.util.Log;
  import android.view.SurfaceHolder;
  import android.view.SurfaceView;
  
  public class class_surfaceView extends SurfaceView implements SurfaceHolder.Callback {
      Thread t;
      Canvas c;
      SurfaceHolder holder;
      Bitmap ghost;
      Bitmap lifebar;
      Bitmap player;
      Bitmap sol;
      Bitmap tombe;
  
      public class_surfaceView(Context context) {
          super(context);
          holder = getHolder();
          Log.d("Essai", "Class_surfaceView");
      }
      public void surfaceCreated(SurfaceHolder holder) {
          Log.d("Essai", "surfaceCreated");
          new Thread(new Runnable() {
              @Override
              public void run() {
                 lauch_game();
              }
          }).start();
      }
  
      @Override
      public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
      }
  
      @Override
      public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
      }
  
      public void lauch_game() {
          ghost = BitmapFactory.decodeResource(getResources(),R.drawable.ghost);
          c = holder.lockCanvas();
          if(c != null){
              c.drawColor(0, PorterDuff.Mode.CLEAR);
              c.drawBitmap(ghost,0,0,null);
              holder.unlockCanvasAndPost(c);
          } else {
              Log.d("DEBUG","c is null");
          }
          Log.d("Essai", "Essais de dessin");
      }
  }
  </code></pre>
  
  <p>Thanks for helping !</p>