Моя программа работает отлично при запуске в любом повороте / ориентации, но когда я изменяю ориентацию между альбомной ориентацией <-> портрет во время работы, я получаю исключение нулевого указателя из-за моего холста.
@Override
public void run(){
while(running){
if(surfaceHolder.getSurface().isValid()){
Canvas canvas = surfaceHolder.lockCanvas();
canvas.drawColor(Color.BLACK); //NULLPOINTEREXCEPTION here
paint(canvas); //another function of mine
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
И у меня есть android: configChanges = "direction" в моем манифесте, а также
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
}
Когда я закомментирую canvas.drawColor (Color.BLACK), вызывается paint (canvas) и затем нольисключение указателя происходит при следующем использовании холста в этой функции.
Справка?