Я понял почему, но я не знаю почему.
Будучи настоящим новичком в Java и Android, я потратил очень много времени, чтобы выяснить.
Ключк этой проблеме относится
класс gameView расширяет SurfaceView реализует SurfaceHolder.Callback {
public gameView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
вы можете видеть, что это основа SurfaceView, в каждом уроке
, например
http://android -er.blogspot.com / 2010/05 / android-surfaceview.html
http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html
В виде поверхности есть 3 вида конструктора:
SurfaceView(Context context)
SurfaceView(Context context, AttributeSet attrs)
SurfaceView(Context context, AttributeSet attrs, int defStyle)
Я провел день, используя первый:
SurfaceView(Context context)
, и он всегда приходит к «принудительному закрытию».
но когда я обратился ко второму конструктору:
SurfaceView(Context context, AttributeSet attrs)
Это вдруг работает!
Это решение.
Может кто-нибудь сказать мне, почему??