안드로이드 개발 질문/답변
(글 수 45,052)
public void surfaceCreated(SurfaceHolder holder)
{
Log.v("MyLog","SurfaceCreated");
try
{
runThread.start();
}
catch (Exception e)
{
runThread = null;
runThread = new RunThread();
runThread.start();
}
threadRunning = true;
}
manifest에서 android:screenOrientation="landscape"을 주어서 화면이 가로로 실행 되는데요.
위에 로그를 찍어보니까 SurfaceView가 생성될때 4번이나 로그가 찍히더라고요.
4번 생성된다는 소리인데...
처음 세로로 만들어질때 한번, 가로로 만들어질때 한번 이렇게 두번만 불리어야 되는것 아닌가요?
ANR이 발생하는데 어디서 발생하는지 하나하나 찾는중이라.. ㅠㅠ
힘드네요.. 흑흑..ㅠㅠ
{
Log.v("MyLog","SurfaceCreated");
try
{
runThread.start();
}
catch (Exception e)
{
runThread = null;
runThread = new RunThread();
runThread.start();
}
threadRunning = true;
}
manifest에서 android:screenOrientation="landscape"을 주어서 화면이 가로로 실행 되는데요.
위에 로그를 찍어보니까 SurfaceView가 생성될때 4번이나 로그가 찍히더라고요.
4번 생성된다는 소리인데...
처음 세로로 만들어질때 한번, 가로로 만들어질때 한번 이렇게 두번만 불리어야 되는것 아닌가요?
ANR이 발생하는데 어디서 발생하는지 하나하나 찾는중이라.. ㅠㅠ
힘드네요.. 흑흑..ㅠㅠ




거기서 CPU 점유율이 80 이상이 꾸준히 유지 된다면 이건 로직을 좀 나눠서...
한번에 몰리지 않도록 조정해야 합니다.
만약에 낮은 수치가 유지됨에도 ANR이 뜬다면
UI스레드가 필요없이 붙잡혀있는 케이스가 됩니다.
이런 경우에 텍스쳐로딩 등의 작업을 스레드로 빼주면 나아질수 있습니다.
아니면 UI 스레드에 sleep을 걸고 있지 않은가 확인하셔야 합니다.