안드로이드 엑티비티란?

조영규의 블로그

2016. 6. 1. 02:25 from Develop


Edit

티스토리 안드로이드 android

안드로이드 엑티비티란?

들어가기 전에.

모든 내용은 개인적인 안드로이드 학습을 위해 정리 것이다. 공식 홈페이지인 이곳 안드로이드 디벨로퍼 페이지를 참고했으며, 개인적으로 약간의 번역과 의역을 붙여 이해한 내용을 풀어적었다. 혹시 처음 시작하는 누군가에게 도움이 될지 몰라 올린다. 잘못된 것이 있다면 알려주기 바란다.

액티비티란?

Activities
An activity is one of the distinguishing features of the Android framework. Activities provide the user with access to your app, and there may be many activities. An application will usually have a main activity for when the user launches the application, another activity for when she selects some content to view, for example, and other activities for when she performs other tasks within the app. See Activities for more information.

안드로이드 프레임워크가 제공하는 엑티비티는 사용자가 앱에 접근할 수 있도록 하며, 다양한 활동(작업)을 할 수 있도록 하는 일종의 페이지입니다.

액티비티 시작하기

main()으로 시작하는 다른 프로그래밍 패러다임과는 다르게 안드로이드는 안드로이드 프레임워크를가Avtivity 인스턴스들(안드로이드의 )의 라이프사이클을 관리합니다. 각 라이프사이클 stage가 바뀌는 매 순간마다, 해당 시점에 대응되는 Callback 메소드를 실행합니다.

엑티비티는 라이프 타임 동안에 각 스테이지가 순차적으로 진행됩니다. 즉 각 메소드(콜백)을 순차적으로 실행하게 됩니다. 각각의 콜백 메소드가 끝난 후 액티비티의 상태는 한단계 올라갑니다. 마치 피라미드처럼. 피라미드의 최상층은 엑티비티가 전면에서 실행중이며 사용자가 상호작용할 수 있는 상태를 뜻합니다.

액티비티를 사용자가 종료하게 되면 액티비티는 하향이동하는 다른 메소드를 호출합니다. 사용자가 앱을 전환하는 경우 완전히 하향하지않고 기다리기도 합니다. 이런 경우 다시 최상층으로 올라갈 수도 있습니다.

엑티비티의 복잡한 정도에 따라 모든 라이프사이클 메소드를 구현할 필요가 없을 수도 있습니다. 각각의 라이프사이클을 이해하는 것은 사용자가 예상한대로 앱이 동작함을 보장하기 위해 중요합니다.

onCreate()가 호출된 후 바로 onStart()가, 그리고 즉시 onResume()이 호출됩니다.

onCreate()메소드에서 finish()를 호출하는 경우를 제외하고 onPause(), onStop()을 먼저 호출한 후에 onDestroy()를 호출합니다. 경우에 따라 onCreate()에서 finish()를 호출해야하는 경우가 있는데, 에깉비티가 다른 엑티비티를 실행하기 위한 용도일 경우가 바로 그것입니다. 이 경우 시스템은 onDestory()만을 호출합니다.

엑티비티의 일시정지와 재개

엑티비티가 일시 중지되는 경우가 있습니다. 엑티비티가 부분적으로 보이지만, 현재 포커스 되어있지 않다면 일시정지 상태입니다. 그러나 엑티비티가 완전히 사려지면, 정지상태가 됩니다.

엑티비티가 일시정지 상태가 되면 onPause()가 호출됩니다. 이런 엑티비티는 언제나 다시 포커스가 돌아올 수 있습니다. 그러나 이는 엑티비티를 떠날 것임을 이야기하는 첫번째 신호입니다. 만약 사용자가 다시 돌아온다면 onResume()이 호출되겠지요.

엑티비티는 onPause()뒤 곧 정지 상태로 전환될 확률이 높습니다. 따라서 CPU 소비를 하는 작업, 저장되지 않은 변경 내용의 커밋, 브로드 캐스트 리시버와 같은 시스템 리소스, 각종 센서, 배터리 수명에 영향을 미치는 혹은 사용자가 필요로 하지 않는 리소스에 대한 해지를 여기서 해주어야 합니다. 카메라를 사용하는 엑티비티라면, onPause()는 이를 해제할 수 있는 좋은 위치죠.

onPause()작업은 다음 엑티비티로 자연스럽게 넘어가기 위해 가볍게 유지합니다. 나머지 로드가 많은 셧다운 작업은 onStop()에서 수행합니다.

onResume()은 사용자가 일시정지된 엑티비티를 재개할 때 호출됩니다. 엑티비티가 전면에 표시될 때 마다 이 메소드는 호출됩니다. 따라서 onResume()때는 onPause() 타이밍에 릴리즈한 모든 리소스를 초기화하는 작업이 포함되어야 합니다.

참고로, onResume()onPause()는 보통 서로 짝을 이뤄 작동시킵니다. 한쪽은 리소스 얻기, 한쪽은 놓아주기.

엑티비티 정지 및 재시작

엑티비티를 제대로 정지하고 재시작하는 것은 중요한 프로세스입니다. 이런 프로세스가 완벽히 동작해야 앱이 항상 작동 상태를 유지하고 진행 상태를 잃지 않는다는 신뢰를 사용자에게 줄 수 있습니다. 다음과 같은 시나리오는 엑티비티가 정지되었다가 재시작되는 상황입니다.

  • 사용자가 최근 앱 창을 열고 다른 엑티비티로 전환하면, 현재 전면에 있는 엑티비티는 정지됩니다. 사용자가 다시 앱창으로 돌아오면, 엑티비티는 재시작됩니다.
  • 사용자가 앱에서 새 엑티비티를 시작합니다. 두번째 엑티비티가 생성되면, 현 엑티비티는 정지되고, 뒤로가기를 누르면 다시 재시작됩니다.
  • 사용자가 앱을 이용하는 도중 전화가 걸려 옵니다.

onStop()onRestrat()는 정지와 재시작의 처리를 명확히 할 수 있는 메소드입니다. 부분적인 UI 차단은 onPause()가 호출되고, UI가 화면에 보이지 않으면 onStop()이 호출됨으로서 onStop()때 사용자의 포커스가 별도의 엑티비티(혹은 다른 앱)에 있음을 보장합니다. 이때 사용자가 사용하지 않는 거의 모든 리소스를 해제해야합니다.

엑티비티가 정지되고 나면, 시스템이 메모리를 회수 해야하는 경우, 해당 인스턴스를 소멸시킵니다. (원래는 소멸시키지 않습니다. 메모리에 보관해 둡니다.) 급한 경우 onDestroy()를 호출하지 않고 프로세스를 Kill할 수 있습니다. 따라서 onStop()타이밍에 메모리 누수를 야기할 수 있는 리소스는 반드시 해제해야합니다.

onPause()때 다 하지 못한 데이터베이스에 기록하는 작업, CPU 많이 사용하는 작업등은 onStop()타이밍에 합니다.

엑티비티가 정지되면, Activity 객체는 메모리에 계속 유지되고 있다가 재개때 다시 호출됩니다. 따라서 onResume()타이밍에 생성한 구성요소는 다시 초기화 할 필요가 없습니다. 뿐만 아니라 레이아웃에 있는 모든 View의 상태도 함께 메모리에 유지됩니다. 따라서 저장, 복원을 따로 해줄 필요가 없습니다.

엑티비티가 정지된 상태에서 다시 시작될 때 onRestart()가 호출됩니다. 이때 onStart()도 연달아 호출됩니다. 따라서 onRestart()때는 특수한 복원 작업을 수행하면 좋습니다.

onStop()때 리소스가 릴리즈 되었으나, 앱을 처음 킬 때 onStart()가 호출되며 초기화 했듯, onRestart()호출 때도 onStart()가 호출되며 다시 리소스를 가져 올 것입니다.따라서 따로 onRestart()때 따로 코드를 넣어주지 않아도 정상 작동합니다. 여기서 중요한 것은 onStop()onStart()가 서로 짝을 이뤄 사용되어야 한다는 것입니다. onStart()는 필요한 시스템 리소스, 기능이 제대로 구비되었는지 확인하는 가장 좋은 장소입니다.

엑티비티 재생성

정상적인 앱 동작으로도 엑티비티가 소멸되는 시나리오가 있습니다. 사용자가 뒤로를 누르거나, 엑티비티가 finish()를 호출하여 자체적으로 소멸 신호를 보내는 경우입니다. 이 경우, Activity는 완벽히 사라집니다.

엑티비티가 정지된 상태로 장시간 사용되지 않거나, 전면에 있는 엑티비티가 리소스가 더 필요해 시스템이 백그라운드 프로세스를 종료해 메모리를 회수하려는 경우에도 시스템이 엑티비티를 소멸시킬 수 있습니다. 이렇게 정상적인 앱 동작이 아닌, 시스템이 소멸시키는 경우 시스템은 Avtivity 인스턴스는 없애지만, 그것이 존재했었음은 기억합니다. 시스템이 이전 상태를 복원하기 위해 사용하는, 저장된 데이터를 인스턴스 상태(instance state)라 하며, 이는 Bundle객체에 저장된 키-값 쌍의 컬렉션 입니다.

참고로, 사용자가 화면을 회전할 때 마다 엑티비티는 소멸 후 재생성됩니다.

기본적으로 자동으로 시스템은 Bundle 인스턴스에 레이아웃 view들의 상태를 저장합니다. 따라서 별도 코드 없이도 자동으로 복원이 됩니다. ()단 이때 android:id 애트리뷰트 값은 반드시 있어야 합니다.) 그러나 추가적으로 코드로 데이터를 직접 저장하고 핸들링 하고 싶다면 아래의 두개의 메소드를 이용합니다.


static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
...

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);

// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}

onSaveInstanceState()를 이용해 엑티비티의 상태를 저장해 둘 수 있습니다. 이는 이후 onCreate() 타이밍, 혹은 그 바로 다음인 onRestoreInstanceState() 타이밍에 핸들링 할 수 있습니다. 단 onRestoreInstanceState()Bundle 객체가 있을 경우(복원할 저장 데이터가 있을 경우)에 만 실행됩니다.


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // Always call the superclass first

// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore value of members from saved state
mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
} else {
// Probably initialize members with default values for a new instance
}
...
}

onCreate()때 핸들링 하기 위해서는 반드시 Bundle객체가 null인지 확인하여야 합니다. 그러나 이후 실행되는 onRestoreInstanceState()Bundle객체가 없으면 실행되지 않기에 null값에 대한 처리를 해주지 않아도 됩니다.

public void onRestoreInstanceState(Bundle savedInstanceState) {
// Always call the superclass so it can restore the view hierarchy
super.onRestoreInstanceState(savedInstanceState);

// Restore state members from saved instance
mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
}

@%5B%uD2F0%uC2A4%uD1A0%uB9AC%2C%uC548%uB4DC%uB85C%uC774%uB4DC%2Candroid%5D%0A%0A%23%20%uC548%uB4DC%uB85C%uC774%uB4DC%20%uC5D1%uD2F0%uBE44%uD2F0%uB780%3F%0A%0A%3E%20%uB4E4%uC5B4%uAC00%uAE30%20%uC804%uC5D0.%0A%3E%0A%3E%uBAA8%uB4E0%20%uB0B4%uC6A9%uC740%20%uAC1C%uC778%uC801%uC778%20%uC548%uB4DC%uB85C%uC774%uB4DC%20%uD559%uC2B5%uC744%20%uC704%uD574%20%uC815%uB9AC%20%uAC83%uC774%uB2E4.%20%uACF5%uC2DD%20%uD648%uD398%uC774%uC9C0%uC778%20%5B%uC774%uACF3%5D%28https%3A//developer.android.com/training/basics/activity-lifecycle/starting.html%29%20%uC548%uB4DC%uB85C%uC774%uB4DC%20%uB514%uBCA8%uB85C%uD37C%20%uD398%uC774%uC9C0%uB97C%20%uCC38%uACE0%uD588%uC73C%uBA70%2C%20%uAC1C%uC778%uC801%uC73C%uB85C%20%uC57D%uAC04%uC758%20%uBC88%uC5ED%uACFC%20%uC758%uC5ED%uC744%20%uBD99%uC5EC%20%uC774%uD574%uD55C%20%uB0B4%uC6A9%uC744%20%uD480%uC5B4%uC801%uC5C8%uB2E4.%20%uD639%uC2DC%20%uCC98%uC74C%20%uC2DC%uC791%uD558%uB294%20%uB204%uAD70%uAC00%uC5D0%uAC8C%20%uB3C4%uC6C0%uC774%20%uB420%uC9C0%20%uBAB0%uB77C%20%uC62C%uB9B0%uB2E4.%20%uC798%uBABB%uB41C%20%uAC83%uC774%20%uC788%uB2E4%uBA74%20%uC54C%uB824%uC8FC%uAE30%20%uBC14%uB780%uB2E4.%0A%0A%0A%23%20%uC561%uD2F0%uBE44%uD2F0%3F%0A%0A%3E%20%60Activities%60%0AAn%20activity%20is%20one%20of%20the%20distinguishing%20features%20of%20the%20Android%20framework.%20Activities%20provide%20the%20user%20with%20access%20to%20your%20app%2C%20and%20there%20may%20be%20many%20activities.%20An%20application%20will%20usually%20have%20a%20main%20activity%20for%20when%20the%20user%20launches%20the%20application%2C%20another%20activity%20for%20when%20she%20selects%20some%20content%20to%20view%2C%20for%20example%2C%20and%20other%20activities%20for%20when%20she%20performs%20other%20tasks%20within%20the%20app.%20See%20Activities%20for%20more%20information.%0A%0A%uC548%uB4DC%uB85C%uC774%uB4DC%20%uD504%uB808%uC784%uC6CC%uD06C%uAC00%20%uC81C%uACF5%uD558%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC0AC%uC6A9%uC790%uAC00%20%uC571%uC5D0%20%uC811%uADFC%uD560%20%uC218%20%uC788%uB3C4%uB85D%20%uD558%uBA70%2C%20%uB2E4%uC591%uD55C%20%60%uD65C%uB3D9%28%uC791%uC5C5%29%60%uC744%20%uD560%20%uC218%20%uC788%uB3C4%uB85D%20%uD558%uB294%20%uC77C%uC885%uC758%20%60%uD398%uC774%uC9C0%60%uC785%uB2C8%uB2E4.%0A%0A%23%20%uC561%uD2F0%uBE44%uD2F0%20%uC2DC%uC791%uD558%uAE30%0A%0A%60main%28%29%60%uC73C%uB85C%20%uC2DC%uC791%uD558%uB294%20%uB2E4%uB978%20%uD504%uB85C%uADF8%uB798%uBC0D%20%uD328%uB7EC%uB2E4%uC784%uACFC%uB294%20%uB2E4%uB974%uAC8C%20%uC548%uB4DC%uB85C%uC774%uB4DC%uB294%20%uC548%uB4DC%uB85C%uC774%uB4DC%20%uD504%uB808%uC784%uC6CC%uD06C%uB97C%uAC00%60Avtivity%60%20%uC778%uC2A4%uD134%uC2A4%uB4E4%28%uC548%uB4DC%uB85C%uC774%uB4DC%uC758%20%29%uC758%20%uB77C%uC774%uD504%uC0AC%uC774%uD074%uC744%20%uAD00%uB9AC%uD569%uB2C8%uB2E4.%20%uAC01%20%uB77C%uC774%uD504%uC0AC%uC774%uD074%20stage%uAC00%20%uBC14%uB00C%uB294%20%uB9E4%20%uC21C%uAC04%uB9C8%uB2E4%2C%20%uD574%uB2F9%20%uC2DC%uC810%uC5D0%20%uB300%uC751%uB418%uB294%20Callback%20%uBA54%uC18C%uB4DC%uB97C%20%uC2E4%uD589%uD569%uB2C8%uB2E4.%0A%0A%21%5BAlt%20text%5D%28./1464711552621.png%29%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uB77C%uC774%uD504%20%uD0C0%uC784%20%uB3D9%uC548%uC5D0%20%uAC01%20%uC2A4%uD14C%uC774%uC9C0%uAC00%20%uC21C%uCC28%uC801%uC73C%uB85C%20%uC9C4%uD589%uB429%uB2C8%uB2E4.%20%uC989%20%uAC01%20%uBA54%uC18C%uB4DC%28%uCF5C%uBC31%29%uC744%20%uC21C%uCC28%uC801%uC73C%uB85C%20%uC2E4%uD589%uD558%uAC8C%20%uB429%uB2C8%uB2E4.%20%uAC01%uAC01%uC758%20%uCF5C%uBC31%20%uBA54%uC18C%uB4DC%uAC00%20%uB05D%uB09C%20%uD6C4%20%uC561%uD2F0%uBE44%uD2F0%uC758%20%uC0C1%uD0DC%uB294%20%uD55C%uB2E8%uACC4%20%uC62C%uB77C%uAC11%uB2C8%uB2E4.%20%uB9C8%uCE58%20%uD53C%uB77C%uBBF8%uB4DC%uCC98%uB7FC.%20%uD53C%uB77C%uBBF8%uB4DC%uC758%20%uCD5C%uC0C1%uCE35%uC740%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC804%uBA74%uC5D0%uC11C%20%uC2E4%uD589%uC911%uC774%uBA70%20%uC0AC%uC6A9%uC790%uAC00%20%uC0C1%uD638%uC791%uC6A9%uD560%20%uC218%20%uC788%uB294%20%uC0C1%uD0DC%uB97C%20%uB73B%uD569%uB2C8%uB2E4.%0A%0A%uC561%uD2F0%uBE44%uD2F0%uB97C%20%uC0AC%uC6A9%uC790%uAC00%20%uC885%uB8CC%uD558%uAC8C%20%uB418%uBA74%20%uC561%uD2F0%uBE44%uD2F0%uB294%20%uD558%uD5A5%uC774%uB3D9%uD558%uB294%20%uB2E4%uB978%20%uBA54%uC18C%uB4DC%uB97C%20%uD638%uCD9C%uD569%uB2C8%uB2E4.%20%uC0AC%uC6A9%uC790%uAC00%20%uC571%uC744%20%uC804%uD658%uD558%uB294%20%uACBD%uC6B0%20%uC644%uC804%uD788%20%uD558%uD5A5%uD558%uC9C0%uC54A%uACE0%20%uAE30%uB2E4%uB9AC%uAE30%uB3C4%20%uD569%uB2C8%uB2E4.%20%uC774%uB7F0%20%uACBD%uC6B0%20%uB2E4%uC2DC%20%uCD5C%uC0C1%uCE35%uC73C%uB85C%20%uC62C%uB77C%uAC08%20%uC218%uB3C4%20%uC788%uC2B5%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uC758%20%uBCF5%uC7A1%uD55C%20%uC815%uB3C4%uC5D0%20%uB530%uB77C%20%uBAA8%uB4E0%20%uB77C%uC774%uD504%uC0AC%uC774%uD074%20%uBA54%uC18C%uB4DC%uB97C%20%uAD6C%uD604%uD560%20%uD544%uC694%uAC00%20%uC5C6%uC744%20%uC218%uB3C4%20%uC788%uC2B5%uB2C8%uB2E4.%20%uAC01%uAC01%uC758%20%uB77C%uC774%uD504%uC0AC%uC774%uD074%uC744%20%uC774%uD574%uD558%uB294%20%uAC83%uC740%20%uC0AC%uC6A9%uC790%uAC00%20%uC608%uC0C1%uD55C%uB300%uB85C%20%uC571%uC774%20%uB3D9%uC791%uD568%uC744%20%uBCF4%uC7A5%uD558%uAE30%20%uC704%uD574%20%uC911%uC694%uD569%uB2C8%uB2E4.%0A%0A%60onCreate%28%29%60%uAC00%20%uD638%uCD9C%uB41C%20%uD6C4%20%uBC14%uB85C%20%60onStart%28%29%60%uAC00%2C%20%uADF8%uB9AC%uACE0%20%uC989%uC2DC%20%60onResume%28%29%60%uC774%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%20%0A%0A%60onCreate%28%29%60%uBA54%uC18C%uB4DC%uC5D0%uC11C%20%60finish%28%29%60%uB97C%20%uD638%uCD9C%uD558%uB294%20%uACBD%uC6B0%uB97C%20%uC81C%uC678%uD558%uACE0%20%60onPause%28%29%60%2C%20%60onStop%28%29%60%uC744%20%uBA3C%uC800%20%uD638%uCD9C%uD55C%20%uD6C4%uC5D0%20%60onDestroy%28%29%60%uB97C%20%uD638%uCD9C%uD569%uB2C8%uB2E4.%20%uACBD%uC6B0%uC5D0%20%uB530%uB77C%20%60onCreate%28%29%60%uC5D0%uC11C%20%60finish%28%29%60%uB97C%20%uD638%uCD9C%uD574%uC57C%uD558%uB294%20%uACBD%uC6B0%uAC00%20%uC788%uB294%uB370%2C%20%uC5D0%uAE49%uBE44%uD2F0%uAC00%20%uB2E4%uB978%20%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uC2E4%uD589%uD558%uAE30%20%uC704%uD55C%20%uC6A9%uB3C4%uC77C%20%uACBD%uC6B0%uAC00%20%uBC14%uB85C%20%uADF8%uAC83%uC785%uB2C8%uB2E4.%20%uC774%20%uACBD%uC6B0%20%uC2DC%uC2A4%uD15C%uC740%20%60onDestory%28%29%60%uB9CC%uC744%20%uD638%uCD9C%uD569%uB2C8%uB2E4.%0A%0A%23%20%uC5D1%uD2F0%uBE44%uD2F0%uC758%20%uC77C%uC2DC%uC815%uC9C0%uC640%20%uC7AC%uAC1C%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC77C%uC2DC%20%uC911%uC9C0%uB418%uB294%20%uACBD%uC6B0%uAC00%20%uC788%uC2B5%uB2C8%uB2E4.%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uBD80%uBD84%uC801%uC73C%uB85C%20%uBCF4%uC774%uC9C0%uB9CC%2C%20%uD604%uC7AC%20%uD3EC%uCEE4%uC2A4%20%uB418%uC5B4%uC788%uC9C0%20%uC54A%uB2E4%uBA74%20%uC77C%uC2DC%uC815%uC9C0%20%uC0C1%uD0DC%uC785%uB2C8%uB2E4.%20%uADF8%uB7EC%uB098%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC644%uC804%uD788%20%uC0AC%uB824%uC9C0%uBA74%2C%20%uC815%uC9C0%uC0C1%uD0DC%uAC00%20%uB429%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC77C%uC2DC%uC815%uC9C0%20%uC0C1%uD0DC%uAC00%20%uB418%uBA74%20%60onPause%28%29%60%uAC00%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uC774%uB7F0%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC5B8%uC81C%uB098%20%uB2E4%uC2DC%20%uD3EC%uCEE4%uC2A4%uAC00%20%uB3CC%uC544%uC62C%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uADF8%uB7EC%uB098%20%uC774%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uB5A0%uB0A0%20%uAC83%uC784%uC744%20%uC774%uC57C%uAE30%uD558%uB294%20%uCCAB%uBC88%uC9F8%20%uC2E0%uD638%uC785%uB2C8%uB2E4.%20%uB9CC%uC57D%20%uC0AC%uC6A9%uC790%uAC00%20%uB2E4%uC2DC%20%uB3CC%uC544%uC628%uB2E4%uBA74%20%60onResume%28%29%60%uC774%20%uD638%uCD9C%uB418%uACA0%uC9C0%uC694.%0A%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%60onPause%28%29%60%uB4A4%20%uACE7%20%uC815%uC9C0%20%uC0C1%uD0DC%uB85C%20%uC804%uD658%uB420%20%uD655%uB960%uC774%20%uB192%uC2B5%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20CPU%20%uC18C%uBE44%uB97C%20%uD558%uB294%20%uC791%uC5C5%2C%20%uC800%uC7A5%uB418%uC9C0%20%uC54A%uC740%20%uBCC0%uACBD%20%uB0B4%uC6A9%uC758%20%uCEE4%uBC0B%2C%20%uBE0C%uB85C%uB4DC%20%uCE90%uC2A4%uD2B8%20%uB9AC%uC2DC%uBC84%uC640%20%uAC19%uC740%20%uC2DC%uC2A4%uD15C%20%uB9AC%uC18C%uC2A4%2C%20%uAC01%uC885%20%uC13C%uC11C%2C%20%uBC30%uD130%uB9AC%20%uC218%uBA85%uC5D0%20%uC601%uD5A5%uC744%20%uBBF8%uCE58%uB294%20%uD639%uC740%20%uC0AC%uC6A9%uC790%uAC00%20%uD544%uC694%uB85C%20%uD558%uC9C0%20%uC54A%uB294%20%uB9AC%uC18C%uC2A4%uC5D0%20%uB300%uD55C%20%uD574%uC9C0%uB97C%20%uC5EC%uAE30%uC11C%20%uD574%uC8FC%uC5B4%uC57C%20%uD569%uB2C8%uB2E4.%20%uCE74%uBA54%uB77C%uB97C%20%uC0AC%uC6A9%uD558%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uB77C%uBA74%2C%20%60onPause%28%29%60%uB294%20%uC774%uB97C%20%uD574%uC81C%uD560%20%uC218%20%uC788%uB294%20%uC88B%uC740%20%uC704%uCE58%uC8E0.%0A%0A%60onPause%28%29%60%uC791%uC5C5%uC740%20%uB2E4%uC74C%20%uC5D1%uD2F0%uBE44%uD2F0%uB85C%20%uC790%uC5F0%uC2A4%uB7FD%uAC8C%20%uB118%uC5B4%uAC00%uAE30%20%uC704%uD574%20%uAC00%uBCCD%uAC8C%20%uC720%uC9C0%uD569%uB2C8%uB2E4.%20%uB098%uBA38%uC9C0%20%uB85C%uB4DC%uAC00%20%uB9CE%uC740%20%uC167%uB2E4%uC6B4%20%uC791%uC5C5%uC740%20%60onStop%28%29%60%uC5D0%uC11C%20%uC218%uD589%uD569%uB2C8%uB2E4.%0A%0A%60onResume%28%29%60%uC740%20%uC0AC%uC6A9%uC790%uAC00%20%uC77C%uC2DC%uC815%uC9C0%uB41C%20%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uC7AC%uAC1C%uD560%20%uB54C%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC804%uBA74%uC5D0%20%uD45C%uC2DC%uB420%20%uB54C%20%uB9C8%uB2E4%20%uC774%20%uBA54%uC18C%uB4DC%uB294%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%60onResume%28%29%60%uB54C%uB294%20%60onPause%28%29%60%20%uD0C0%uC774%uBC0D%uC5D0%20%uB9B4%uB9AC%uC988%uD55C%20%uBAA8%uB4E0%20%uB9AC%uC18C%uC2A4%uB97C%20%uCD08%uAE30%uD654%uD558%uB294%20%uC791%uC5C5%uC774%20%uD3EC%uD568%uB418%uC5B4%uC57C%20%uD569%uB2C8%uB2E4.%20%0A%0A%uCC38%uACE0%uB85C%2C%20%60onResume%28%29%60%uACFC%20%60onPause%28%29%60%uB294%20%uBCF4%uD1B5%20%uC11C%uB85C%20%uC9DD%uC744%20%uC774%uB904%20%uC791%uB3D9%uC2DC%uD0B5%uB2C8%uB2E4.%20%uD55C%uCABD%uC740%20%uB9AC%uC18C%uC2A4%20%uC5BB%uAE30%2C%20%uD55C%uCABD%uC740%20%uB193%uC544%uC8FC%uAE30.%0A%0A%23%20%uC5D1%uD2F0%uBE44%uD2F0%20%uC815%uC9C0%20%uBC0F%20%uC7AC%uC2DC%uC791%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uC81C%uB300%uB85C%20%uC815%uC9C0%uD558%uACE0%20%uC7AC%uC2DC%uC791%uD558%uB294%20%uAC83%uC740%20%uC911%uC694%uD55C%20%uD504%uB85C%uC138%uC2A4%uC785%uB2C8%uB2E4.%20%uC774%uB7F0%20%uD504%uB85C%uC138%uC2A4%uAC00%20%uC644%uBCBD%uD788%20%uB3D9%uC791%uD574%uC57C%20%uC571%uC774%20%uD56D%uC0C1%20%uC791%uB3D9%20%uC0C1%uD0DC%uB97C%20%uC720%uC9C0%uD558%uACE0%20%uC9C4%uD589%20%uC0C1%uD0DC%uB97C%20%uC783%uC9C0%20%uC54A%uB294%uB2E4%uB294%20%uC2E0%uB8B0%uB97C%20%uC0AC%uC6A9%uC790%uC5D0%uAC8C%20%uC904%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uB2E4%uC74C%uACFC%20%uAC19%uC740%20%uC2DC%uB098%uB9AC%uC624%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC815%uC9C0%uB418%uC5C8%uB2E4%uAC00%20%uC7AC%uC2DC%uC791%uB418%uB294%20%uC0C1%uD669%uC785%uB2C8%uB2E4.%0A%0A-%20%uC0AC%uC6A9%uC790%uAC00%20%uCD5C%uADFC%20%uC571%20%uCC3D%uC744%20%uC5F4%uACE0%20%uB2E4%uB978%20%uC5D1%uD2F0%uBE44%uD2F0%uB85C%20%uC804%uD658%uD558%uBA74%2C%20%uD604%uC7AC%20%uC804%uBA74%uC5D0%20%uC788%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC815%uC9C0%uB429%uB2C8%uB2E4.%20%uC0AC%uC6A9%uC790%uAC00%20%uB2E4%uC2DC%20%uC571%uCC3D%uC73C%uB85C%20%uB3CC%uC544%uC624%uBA74%2C%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC7AC%uC2DC%uC791%uB429%uB2C8%uB2E4.%0A-%20%uC0AC%uC6A9%uC790%uAC00%20%uC571%uC5D0%uC11C%20%uC0C8%20%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uC2DC%uC791%uD569%uB2C8%uB2E4.%20%uB450%uBC88%uC9F8%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC0DD%uC131%uB418%uBA74%2C%20%uD604%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC815%uC9C0%uB418%uACE0%2C%20%uB4A4%uB85C%uAC00%uAE30%uB97C%20%uB204%uB974%uBA74%20%uB2E4%uC2DC%20%uC7AC%uC2DC%uC791%uB429%uB2C8%uB2E4.%0A-%20%uC0AC%uC6A9%uC790%uAC00%20%uC571%uC744%20%uC774%uC6A9%uD558%uB294%20%uB3C4%uC911%20%uC804%uD654%uAC00%20%uAC78%uB824%20%uC635%uB2C8%uB2E4.%0A%0A%60onStop%28%29%60%uACFC%20%60onRestrat%28%29%60%uB294%20%uC815%uC9C0%uC640%20%uC7AC%uC2DC%uC791%uC758%20%uCC98%uB9AC%uB97C%20%uBA85%uD655%uD788%20%uD560%20%uC218%20%uC788%uB294%20%uBA54%uC18C%uB4DC%uC785%uB2C8%uB2E4.%20%uBD80%uBD84%uC801%uC778%20UI%20%uCC28%uB2E8%uC740%20%60onPause%28%29%60%uAC00%20%uD638%uCD9C%uB418%uACE0%2C%20UI%uAC00%20%uD654%uBA74%uC5D0%20%uBCF4%uC774%uC9C0%20%uC54A%uC73C%uBA74%20%60onStop%28%29%60%uC774%20%uD638%uCD9C%uB428%uC73C%uB85C%uC11C%20%60onStop%28%29%60%uB54C%20%uC0AC%uC6A9%uC790%uC758%20%uD3EC%uCEE4%uC2A4%uAC00%20%uBCC4%uB3C4%uC758%20%uC5D1%uD2F0%uBE44%uD2F0%28%uD639%uC740%20%uB2E4%uB978%20%uC571%29%uC5D0%20%uC788%uC74C%uC744%20%uBCF4%uC7A5%uD569%uB2C8%uB2E4.%20%uC774%uB54C%20%uC0AC%uC6A9%uC790%uAC00%20%uC0AC%uC6A9%uD558%uC9C0%20%uC54A%uB294%20%uAC70%uC758%20%uBAA8%uB4E0%20%uB9AC%uC18C%uC2A4%uB97C%20%uD574%uC81C%uD574%uC57C%uD569%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC815%uC9C0%uB418%uACE0%20%uB098%uBA74%2C%20%uC2DC%uC2A4%uD15C%uC774%20%uBA54%uBAA8%uB9AC%uB97C%20%uD68C%uC218%20%uD574%uC57C%uD558%uB294%20%uACBD%uC6B0%2C%20%uD574%uB2F9%20%uC778%uC2A4%uD134%uC2A4%uB97C%20%uC18C%uBA78%uC2DC%uD0B5%uB2C8%uB2E4.%20%28%uC6D0%uB798%uB294%20%uC18C%uBA78%uC2DC%uD0A4%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4.%20%uBA54%uBAA8%uB9AC%uC5D0%20%uBCF4%uAD00%uD574%20%uB461%uB2C8%uB2E4.%29%20%uAE09%uD55C%20%uACBD%uC6B0%20%60onDestroy%28%29%60%uB97C%20%uD638%uCD9C%uD558%uC9C0%20%uC54A%uACE0%20%uD504%uB85C%uC138%uC2A4%uB97C%20Kill%uD560%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%60onStop%28%29%60%uD0C0%uC774%uBC0D%uC5D0%20%uBA54%uBAA8%uB9AC%20%uB204%uC218%uB97C%20%uC57C%uAE30%uD560%20%uC218%20%uC788%uB294%20%uB9AC%uC18C%uC2A4%uB294%20%uBC18%uB4DC%uC2DC%20%uD574%uC81C%uD574%uC57C%uD569%uB2C8%uB2E4.%0A%0A%60onPause%28%29%60%uB54C%20%uB2E4%20%uD558%uC9C0%20%uBABB%uD55C%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%20%uAE30%uB85D%uD558%uB294%20%uC791%uC5C5%2C%20CPU%20%uB9CE%uC774%20%uC0AC%uC6A9%uD558%uB294%20%uC791%uC5C5%uB4F1%uC740%20%60onStop%28%29%60%uD0C0%uC774%uBC0D%uC5D0%20%uD569%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC815%uC9C0%uB418%uBA74%2C%20Activity%20%uAC1D%uCCB4%uB294%20%uBA54%uBAA8%uB9AC%uC5D0%20%uACC4%uC18D%20%uC720%uC9C0%uB418%uACE0%20%uC788%uB2E4%uAC00%20%uC7AC%uAC1C%uB54C%20%uB2E4%uC2DC%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%60onResume%28%29%60%uD0C0%uC774%uBC0D%uC5D0%20%uC0DD%uC131%uD55C%20%uAD6C%uC131%uC694%uC18C%uB294%20%uB2E4%uC2DC%20%uCD08%uAE30%uD654%20%uD560%20%uD544%uC694%uAC00%20%uC5C6%uC2B5%uB2C8%uB2E4.%20%uBFD0%uB9CC%20%uC544%uB2C8%uB77C%20%uB808%uC774%uC544%uC6C3%uC5D0%20%uC788%uB294%20%uBAA8%uB4E0%20%60View%60%uC758%20%uC0C1%uD0DC%uB3C4%20%uD568%uAED8%20%uBA54%uBAA8%uB9AC%uC5D0%20%uC720%uC9C0%uB429%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%uC800%uC7A5%2C%20%uBCF5%uC6D0%uC744%20%uB530%uB85C%20%uD574%uC904%20%uD544%uC694%uAC00%20%uC5C6%uC2B5%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC815%uC9C0%uB41C%20%uC0C1%uD0DC%uC5D0%uC11C%20%uB2E4%uC2DC%20%uC2DC%uC791%uB420%20%uB54C%20%60onRestart%28%29%60%uAC00%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uC774%uB54C%20%60onStart%28%29%60%uB3C4%20%uC5F0%uB2EC%uC544%20%uD638%uCD9C%uB429%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%60onRestart%28%29%60%uB54C%uB294%20%uD2B9%uC218%uD55C%20%uBCF5%uC6D0%20%uC791%uC5C5%uC744%20%uC218%uD589%uD558%uBA74%20%uC88B%uC2B5%uB2C8%uB2E4.%20%0A%0A%60onStop%28%29%60%uB54C%20%uB9AC%uC18C%uC2A4%uAC00%20%uB9B4%uB9AC%uC988%20%uB418%uC5C8%uC73C%uB098%2C%20%uC571%uC744%20%uCC98%uC74C%20%uD0AC%20%uB54C%20%60onStart%28%29%60%uAC00%20%uD638%uCD9C%uB418%uBA70%20%uCD08%uAE30%uD654%20%uD588%uB4EF%2C%20%20%60onRestart%28%29%60%uD638%uCD9C%20%uB54C%uB3C4%20%60onStart%28%29%60%uAC00%20%uD638%uCD9C%uB418%uBA70%20%uB2E4%uC2DC%20%uB9AC%uC18C%uC2A4%uB97C%20%uAC00%uC838%20%uC62C%20%uAC83%uC785%uB2C8%uB2E4.%uB530%uB77C%uC11C%20%uB530%uB85C%20%60onRestart%28%29%60%uB54C%20%uB530%uB85C%20%uCF54%uB4DC%uB97C%20%uB123%uC5B4%uC8FC%uC9C0%20%uC54A%uC544%uB3C4%20%uC815%uC0C1%20%uC791%uB3D9%uD569%uB2C8%uB2E4.%20%uC5EC%uAE30%uC11C%20%uC911%uC694%uD55C%20%uAC83%uC740%20%60onStop%28%29%60%uACFC%20%60onStart%28%29%60%uAC00%20%uC11C%uB85C%20%uC9DD%uC744%20%uC774%uB904%20%uC0AC%uC6A9%uB418%uC5B4%uC57C%20%uD55C%uB2E4%uB294%20%uAC83%uC785%uB2C8%uB2E4.%20%60onStart%28%29%60%uB294%20%uD544%uC694%uD55C%20%uC2DC%uC2A4%uD15C%20%uB9AC%uC18C%uC2A4%2C%20%uAE30%uB2A5%uC774%20%uC81C%uB300%uB85C%20%uAD6C%uBE44%uB418%uC5C8%uB294%uC9C0%20%uD655%uC778%uD558%uB294%20%uAC00%uC7A5%20%uC88B%uC740%20%uC7A5%uC18C%uC785%uB2C8%uB2E4.%0A%0A%23%20%uC5D1%uD2F0%uBE44%uD2F0%20%uC7AC%uC0DD%uC131%0A%0A%uC815%uC0C1%uC801%uC778%20%uC571%20%uB3D9%uC791%uC73C%uB85C%uB3C4%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC18C%uBA78%uB418%uB294%20%uC2DC%uB098%uB9AC%uC624%uAC00%20%uC788%uC2B5%uB2C8%uB2E4.%20%uC0AC%uC6A9%uC790%uAC00%20%uB4A4%uB85C%uB97C%20%uB204%uB974%uAC70%uB098%2C%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%60finish%28%29%60%uB97C%20%uD638%uCD9C%uD558%uC5EC%20%uC790%uCCB4%uC801%uC73C%uB85C%20%uC18C%uBA78%20%uC2E0%uD638%uB97C%20%uBCF4%uB0B4%uB294%20%uACBD%uC6B0%uC785%uB2C8%uB2E4.%20%20%uC774%20%uACBD%uC6B0%2C%20Activity%uB294%20%uC644%uBCBD%uD788%20%uC0AC%uB77C%uC9D1%uB2C8%uB2E4.%0A%0A%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uC815%uC9C0%uB41C%20%uC0C1%uD0DC%uB85C%20%uC7A5%uC2DC%uAC04%20%uC0AC%uC6A9%uB418%uC9C0%20%uC54A%uAC70%uB098%2C%20%uC804%uBA74%uC5D0%20%uC788%uB294%20%uC5D1%uD2F0%uBE44%uD2F0%uAC00%20%uB9AC%uC18C%uC2A4%uAC00%20%uB354%20%uD544%uC694%uD574%20%uC2DC%uC2A4%uD15C%uC774%20%uBC31%uADF8%uB77C%uC6B4%uB4DC%20%uD504%uB85C%uC138%uC2A4%uB97C%20%uC885%uB8CC%uD574%20%uBA54%uBAA8%uB9AC%uB97C%20%uD68C%uC218%uD558%uB824%uB294%20%uACBD%uC6B0%uC5D0%uB3C4%20%uC2DC%uC2A4%uD15C%uC774%20%uC5D1%uD2F0%uBE44%uD2F0%uB97C%20%uC18C%uBA78%uC2DC%uD0AC%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uC774%uB807%uAC8C%20%uC815%uC0C1%uC801%uC778%20%uC571%20%uB3D9%uC791%uC774%20%uC544%uB2CC%2C%20%uC2DC%uC2A4%uD15C%uC774%20%uC18C%uBA78%uC2DC%uD0A4%uB294%20%uACBD%uC6B0%20%uC2DC%uC2A4%uD15C%uC740%20Avtivity%20%uC778%uC2A4%uD134%uC2A4%uB294%20%uC5C6%uC560%uC9C0%uB9CC%2C%20%uADF8%uAC83%uC774%20%uC874%uC7AC%uD588%uC5C8%uC74C%uC740%20%uAE30%uC5B5%uD569%uB2C8%uB2E4.%20%uC2DC%uC2A4%uD15C%uC774%20%uC774%uC804%20%uC0C1%uD0DC%uB97C%20%uBCF5%uC6D0%uD558%uAE30%20%uC704%uD574%20%uC0AC%uC6A9%uD558%uB294%2C%20%uC800%uC7A5%uB41C%20%uB370%uC774%uD130%uB97C%20%60%uC778%uC2A4%uD134%uC2A4%20%uC0C1%uD0DC%28instance%20state%29%60%uB77C%20%uD558%uBA70%2C%20%20%uC774%uB294%20%60Bundle%60%uAC1D%uCCB4%uC5D0%20%uC800%uC7A5%uB41C%20%uD0A4-%uAC12%20%uC30D%uC758%20%uCEEC%uB809%uC158%20%uC785%uB2C8%uB2E4.%0A%0A%3E%20%uCC38%uACE0%uB85C%2C%20%uC0AC%uC6A9%uC790%uAC00%20%uD654%uBA74%uC744%20%uD68C%uC804%uD560%20%uB54C%20%uB9C8%uB2E4%20%uC5D1%uD2F0%uBE44%uD2F0%uB294%20%uC18C%uBA78%20%uD6C4%20%uC7AC%uC0DD%uC131%uB429%uB2C8%uB2E4.%0A%0A%uAE30%uBCF8%uC801%uC73C%uB85C%20%uC790%uB3D9%uC73C%uB85C%20%uC2DC%uC2A4%uD15C%uC740%20Bundle%20%uC778%uC2A4%uD134%uC2A4%uC5D0%20%uB808%uC774%uC544%uC6C3%20view%uB4E4%uC758%20%uC0C1%uD0DC%uB97C%20%uC800%uC7A5%uD569%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%uBCC4%uB3C4%20%uCF54%uB4DC%20%uC5C6%uC774%uB3C4%20%uC790%uB3D9%uC73C%uB85C%20%uBCF5%uC6D0%uC774%20%uB429%uB2C8%uB2E4.%20%28%29%uB2E8%20%uC774%uB54C%20%60android%3Aid%60%20%uC560%uD2B8%uB9AC%uBDF0%uD2B8%20%uAC12%uC740%20%uBC18%uB4DC%uC2DC%20%uC788%uC5B4%uC57C%20%uD569%uB2C8%uB2E4.%29%20%uADF8%uB7EC%uB098%20%uCD94%uAC00%uC801%uC73C%uB85C%20%uCF54%uB4DC%uB85C%20%uB370%uC774%uD130%uB97C%20%uC9C1%uC811%20%uC800%uC7A5%uD558%uACE0%20%uD578%uB4E4%uB9C1%20%uD558%uACE0%20%uC2F6%uB2E4%uBA74%20%uC544%uB798%uC758%20%uB450%uAC1C%uC758%20%uBA54%uC18C%uB4DC%uB97C%20%uC774%uC6A9%uD569%uB2C8%uB2E4.%0A%0A%21%5BAlt%20text%5D%28./1464714818812.png%29%0A%0A%0A%60%60%60java%0A%0Astatic%20final%20String%20STATE_SCORE%20%3D%20%22playerScore%22%3B%0Astatic%20final%20String%20STATE_LEVEL%20%3D%20%22playerLevel%22%3B%0A...%0A%0A@Override%0Apublic%20void%20onSaveInstanceState%28Bundle%20savedInstanceState%29%20%7B%0A%20%20%20%20//%20Save%20the%20user%27s%20current%20game%20state%0A%20%20%20%20savedInstanceState.putInt%28STATE_SCORE%2C%20mCurrentScore%29%3B%0A%20%20%20%20savedInstanceState.putInt%28STATE_LEVEL%2C%20mCurrentLevel%29%3B%0A%20%20%20%20%0A%20%20%20%20//%20Always%20call%20the%20superclass%20so%20it%20can%20save%20the%20view%20hierarchy%20state%0A%20%20%20%20super.onSaveInstanceState%28savedInstanceState%29%3B%0A%7D%0A%0A%60%60%60%0A%0A%60onSaveInstanceState%28%29%60%uB97C%20%uC774%uC6A9%uD574%20%uC5D1%uD2F0%uBE44%uD2F0%uC758%20%uC0C1%uD0DC%uB97C%20%uC800%uC7A5%uD574%20%uB458%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uC774%uB294%20%uC774%uD6C4%20%60onCreate%28%29%60%20%uD0C0%uC774%uBC0D%2C%20%uD639%uC740%20%uADF8%20%uBC14%uB85C%20%uB2E4%uC74C%uC778%20%60onRestoreInstanceState%28%29%60%20%uD0C0%uC774%uBC0D%uC5D0%20%uD578%uB4E4%uB9C1%20%uD560%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uB2E8%20%60onRestoreInstanceState%28%29%60%uB294%20%60Bundle%60%20%uAC1D%uCCB4%uAC00%20%uC788%uC744%20%uACBD%uC6B0%28%uBCF5%uC6D0%uD560%20%uC800%uC7A5%20%uB370%uC774%uD130%uAC00%20%uC788%uC744%20%uACBD%uC6B0%29%uC5D0%20%uB9CC%20%uC2E4%uD589%uB429%uB2C8%uB2E4.%0A%0A%60%60%60java%0A%0A@Override%0Aprotected%20void%20onCreate%28Bundle%20savedInstanceState%29%20%7B%0A%20%20%20%20super.onCreate%28savedInstanceState%29%3B%20//%20Always%20call%20the%20superclass%20first%0A%20%20%20%0A%20%20%20%20//%20Check%20whether%20we%27re%20recreating%20a%20previously%20destroyed%20instance%0A%20%20%20%20if%20%28savedInstanceState%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20//%20Restore%20value%20of%20members%20from%20saved%20state%0A%20%20%20%20%20%20%20%20mCurrentScore%20%3D%20savedInstanceState.getInt%28STATE_SCORE%29%3B%0A%20%20%20%20%20%20%20%20mCurrentLevel%20%3D%20savedInstanceState.getInt%28STATE_LEVEL%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20//%20Probably%20initialize%20members%20with%20default%20values%20for%20a%20new%20instance%0A%20%20%20%20%7D%0A%20%20%20%20...%0A%7D%0A%0A%60%60%60%0A%0A%60onCreate%28%29%60%uB54C%20%uD578%uB4E4%uB9C1%20%uD558%uAE30%20%uC704%uD574%uC11C%uB294%20%uBC18%uB4DC%uC2DC%20%60Bundle%60%uAC1D%uCCB4%uAC00%20%60null%60%uC778%uC9C0%20%uD655%uC778%uD558%uC5EC%uC57C%20%uD569%uB2C8%uB2E4.%20%uADF8%uB7EC%uB098%20%uC774%uD6C4%20%uC2E4%uD589%uB418%uB294%20%60onRestoreInstanceState%28%29%60%uB294%20%60Bundle%60%uAC1D%uCCB4%uAC00%20%uC5C6%uC73C%uBA74%20%uC2E4%uD589%uB418%uC9C0%20%uC54A%uAE30%uC5D0%20%60null%60%uAC12%uC5D0%20%uB300%uD55C%20%uCC98%uB9AC%uB97C%20%uD574%uC8FC%uC9C0%20%uC54A%uC544%uB3C4%20%uB429%uB2C8%uB2E4.%0A%0A%60%60%60java%0Apublic%20void%20onRestoreInstanceState%28Bundle%20savedInstanceState%29%20%7B%0A%20%20%20%20//%20Always%20call%20the%20superclass%20so%20it%20can%20restore%20the%20view%20hierarchy%0A%20%20%20%20super.onRestoreInstanceState%28savedInstanceState%29%3B%0A%20%20%20%0A%20%20%20%20//%20Restore%20state%20members%20from%20saved%20instance%0A%20%20%20%20mCurrentScore%20%3D%20savedInstanceState.getInt%28STATE_SCORE%29%3B%0A%20%20%20%20mCurrentLevel%20%3D%20savedInstanceState.getInt%28STATE_LEVEL%29%3B%0A%7D%0A%0A%60%60%60%0A


comments powered by Disqus
태그, 트랙백, 검색 상자 토글