surfaceCreated() 在SurfaceView被创建后无法被调用

public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{

private Context mainActivity;
private Paint paint;

public MySurfaceView(Context context) {
    super(context);
    mainActivity=context;
    //getHolder().setFixedSize(300,300);
    getHolder().addCallback(this);

    paint=new Paint();
    paint.setAntiAlias(true);

}

@Override
protected void onDraw(Canvas canvas) {
    Bitmap bitmap= BitmapFactory.decodeResource(mainActivity.getResources(), R.drawable.score_128x128);
    canvas.drawBitmap(bitmap, 20, 130, paint);
    Matrix m1=new Matrix();
    m1.setTranslate(360, 80);
    Matrix m2=new Matrix();
    m2.setRotate(45);
    Matrix mix=new Matrix();
    mix.setConcat(m1,m2);
    paint.setAlpha(128);
    canvas.drawBitmap(bitmap,100,50,paint);
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    Toast.makeText(mainActivity,"exception",Toast.LENGTH_SHORT);
    Canvas canvas=holder.lockCanvas();

    try {
        synchronized (holder){
            onDraw(canvas);
        }
    }catch (Exception e){
        Toast.makeText(mainActivity,"exception",Toast.LENGTH_SHORT);
    }finally {
        holder.unlockCanvasAndPost(canvas);
    }

}

Activity里new一个MySurfaceView
public class MainActivity extends Activity {

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    MySurfaceView mySurfaceView=new MySurfaceView(MainActivity.this);
    setContentView(R.layout.activity_main);

}
 MySurfaceView mySurfaceView=new MySurfaceView(MainActivity.this);//这个view new了后没用
    setContentView(R.layout.activity_main);

        不知道你这个
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(500, 400);
        params.gravity = Gravity.CENTER;
        addContentView(mySurfaceView, params);