2012-07-12 2 views
7

대부분의 액티비티는 서버에서 동적 데이터를로드하고, 페이지가 다시 포커스가되면 어쨌든 다시로드합니다. 사용자가 페이지를 다시 탐색하는 경우 finish()를 호출 할 것을 고려하여 페이지를 다시로드하려는 경우이를 유지하는 것이 낭비되는 것처럼 보입니다. 내가 finish()를 호출했기 때문에 뒤로 이동 버튼과 다른 버튼을 누를 수있는 활동이 있다면 혼란 스럽습니다. 그래서 finish()를 호출했기 때문에 finish()를 호출하는 것이 좋지 않은지 궁금합니다. ? (모든 활동의 맨 아래에 내비게이션 막대가 있으므로 뒤로 버튼은 필요하지 않습니다.) 아니면, 어떤 활동에 대해서도 finish()를 호출하지 말고, 전화를 느리게하지 말고, OS가 쓰레기를 모으기를 바랄뿐입니다. 나는 안드로이드 프로그래밍에 익숙하지 않고 안드로이드 폰을 가지고 있지 않기 때문에이 상황에서 공통점/우수 사례가 무엇인지, 또는 개인적인 취향의 문제인지는 확실하지 않습니다.android에서 액티비티에 finish()를 호출하는 모범 사례?

또한 Android 버튼을 사용하여 뒤로 버튼을 계속 사용할 수 있도록 활동 내역을 저장하도록 안내 할 수 있습니까?하지만 이동하지 않아도 자원을 불필요하게 차지하지 않도록 완료 할 때까지 완료 할 수 있습니까?

+3

Android 휴대 전화가 없다고 말한 Android * 사용자 (*)와 통화하기 만하면 모든 활동에 탐색 표시 줄이 있기 때문에 뒤로 버튼을 사용할 필요가 없다고 언급했습니다. 나는 항상 하나의 * * 인터페이스를 사용하여 아무리 뒤로 젖히는 습관을 버려도 버튼을 사용합니다. 염두에 두어야 할 것 ... 행운을 비네! – Tom

답변

6

활동으로 복귀 할 때 모든 데이터를 다시로드 할 수 있지만 finish()을 호출해도 아무런 의미가 없습니다.

활동이 숨겨져있을 때 자원을 사용하지 않으며 실제 문제가되지 않습니다. 그대로두면 사용자가 다시 탐색 할 때 필요에 따라 다시로드됩니다.

이 상태에서는 필요에 따라 가비지 수집이 가능하며 이는 모두 Android에서 처리됩니다.

0

대부분의 경우 finish()를 호출 할 필요가 없습니다. Android는 내게 필요한 활동을 관리합니다.

사용자가 활동을 떠날 때 정리가 필요한 경우 onDestroy()와 같은 다양한 활동 콜백에서 그런 종류의 작업을 수행 할 수 있습니다.

아직 안드로이드 개발자 가이드에서 Activities을 읽으십시오.

0

활동이 오랫동안 실행되지 않는다면 finish()으로 전화하지 않아야합니다. 안드로이드가 무엇을해야 할지를 처리하도록하는 것이 낫다. 청소 코드를 onPause()에 넣고로드 코드를 onResume()에 넣으십시오.