마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 앱 비정상 종료 에 대해 궁금합니다.

0 추천

APP 실행시 비정상 종료 Exception 발생시 앱이 죽곤 하는데

UncaughtExceptionHandler 사용하면 Exception 발생하면 그 클래스로 이동해

로그를 찍거나 재시작이 가능하다는 이야기를 들었습니다.

구글링 하여 예제를 해봤는데 로그까지는 잘찍는데 재시작까지는 안되는거 같습니다.

반복해서 계속 로그만 찍지 그이상 이동안하는거 같습니다.

예제 코드입니다.

 

private static final String TAG = Common_DTO.class.getSimpleName();

private Thread.UncaughtExceptionHandler mDefaultUncaughtExceptionHandler;

public Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() {
    return mDefaultUncaughtExceptionHandler;
}


public void onCreate(){
    super.onCreate();
    mDefaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
    Log.d("MainApplication", "" + mDefaultUncaughtExceptionHandler);

    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());
}
private class UncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {

    @Override
    public void uncaughtException(Thread t, Throwable e) {
        Log.d(TAG, "Crash!!!");

        // Try everything to make sure this process goes away.
         android.os.Process.killProcess(android.os.Process.myPid());
         System.exit(0);
        Intent restartIntent = new Intent(getApplicationContext(), IntroActivity.class);
        PendingIntent runner = PendingIntent.getActivity(getApplicationContext(), 99, restartIntent, PendingIntent.FLAG_ONE_SHOT);
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 5000, runner);
    }
}
개발자어려워요 (660 포인트) 님이 2018년 1월 28일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...