생명주기(Life Cycle) 테스트

Posted by ITPangPang
2016. 5. 5. 22:12 안드로이드(android)/알아두면 좋은것



생명주기(Life Cycle) 테스트



- 이번글에서는 생명주기 메서드를 사용해보도록 하겠습니다.


- 기본개념등은 교재나  다른 사이트에 상세히 

  나와있으므로 테스트 위주로 알아보려고 합니다




먼저 

Alt+Insert를 눌러서

전부 오버라이드

해온후에 Log를 달아보겠습니다

public class MainActivity extends AppCompatActivity
{
private static final String TAG= "ITPANGPANG";

@Override
protected void onCreate(Bundle savedInstanceState)
{
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
protected void onStart() {
Log.d(TAG, "onStart");
super.onStart();
}

@Override
protected void onResume() {
Log.d(TAG, "onResume");
super.onResume();
}

@Override
protected void onPause() {
Log.d(TAG, "onPause");
super.onPause();
}

@Override
protected void onStop() {
Log.d(TAG, "onStop");
super.onStop();
}

@Override
protected void onRestart() {
Log.d(TAG, "onRestart");
super.onRestart();
}

@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy");
super.onDestroy();
}
}


이제 앱을 실행시켜서

로그를 찍어보겠습니다.


먼저

앱 실행

(onCreate -> onStart -> onResume)

순서로 호출됩니다



이 상태에서

종료버튼(Back) 버튼

을 눌러서 

종료시켜보겠습니다

(onPause -> onStop -> onDestroy)

순서로 호출됩니다


다음은

종료버튼(Back) 버튼 -> 홈버튼 길게 눌러서 앱 재실행

종료버튼을 누른후 다시 

홈버튼으로 재실행 시키면

(최근목록에서 실행)

(onCreate -> onStart -> onResume)

순서로 호출됩니다


다음은 

홈버튼을 눌러서

홈화면으로 전환됬을때

(onPause -> onStop)


다시

홈버튼을 눌러서

홈화면 전환한 후에 

다시 홈버튼을 길게 눌러서

앱 재실행

(onRestart -> onStart -> onResume)


다음은

앱 실행도중

전화가 왔을때

(onPause -> onStop)


다음은

전화통화 종료후

(onRestart -> onStart -> onResume)



다음은

화면전환 갑자기 했을때

(가로->세로, 세로->가로)

(onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume)



다음은

앱 도중 전원버튼으로 

휴대폰 종료시켰을때

(onPause -> onStop)


다음은

앱 도중 배터리

뺏을때

(호출 X)


다음은

앱이 에러로

종료됐을때

(호출 X)



예측가능한 상황에서는

onPause 메서드가 

항상 호출되니

onPause 활용해야 한다