2011-01-08 4 views
1

onCreate주기와 onStart주기의 차이점은 무엇입니까? 이 사이클에 대해 적절한 코드를 넣으려고 혼란스러워했습니다. 예를 들어 필자는 데이터베이스에서 데이터를 표시하고 데이터베이스에 데이터를 작성하는 기타 활동을 표시하는 주 활동 목록 뷰가 있습니다. 데이터를 생성하는 활동이 listactivity에 의해 호출됩니다. 데이터 생성이 성공한 후에는 다시 listactivity가됩니다. 그리고 listview의 데이터가 업데이트되어야합니다.각 안드로이드 라이프 사이클에 적합한 코드를 삽입하는 방법은 무엇입니까?

onCreate 메소드에 초기화 데이터베이스, 커서 및 어댑터를 넣으면 listActivity가 데이터를 만든 후 최신 데이터를 업데이트하지 않습니다. 하지만 onStart 메서드에 넣으면 업데이트됩니다.

내 질문 :이 경우 모든 초기화를 OnStart 메서드에 적용하는 것이 맞습니까? 업데이트 된 데이터가 하나있는 경우 목록 뷰에 각 데이터베이스 레코드를 다시 초기화하는 것이 비용이 많이 든다고 생각하기 때문입니다.

답변

2

onCreate주기와 onStart주기의 차이점은 무엇입니까?

onCreate()이 활동이 처음 생성 될 때 호출됩니다. onStart()은 액티비티가 표시 될 때마다 호출됩니다. 액티비티가 표시 될 때마다 (예 : onCreate() 이후), 화면에서 멈추는 것으로 돌아오고 (예 : 다른 액티비티가 화면을 가로채는 경우) 포함됩니다.

데이터베이스의 데이터를 표시하고 데이터베이스에 데이터를 작성하는 주요 활동리스트 뷰가 있습니다. 데이터를 생성하는 활동은 listactivity에 의해 호출됩니다. 데이터 생성이 성공한 후에는 다시 listactivity가됩니다. 그리고 listview의 데이터가 업데이트되어야합니다.

관리되는 Cursor을 사용하면 자동으로 실행됩니다. ActivitystartManagingCursor()을 참조하십시오.

+0

감사합니다. 이제 제 경우에는 startManagingCursor()를 사용하여 초기화를 onCreate에 넣을 수 있습니다. 다른 활동의 업데이트 데이터가있을 때마다 업데이트됩니다. – Faren

0

에 따라 다릅니다. 사용자가 활동으로 돌아올 때마다 데이터가 다시로드되기를 원합니 까? 그렇다면 onStart()에 이러한 메서드를 추가해야합니다. 맨 처음에 값을로드하려는 경우 (한 번 작업과 비슷 함) 다시로드하지 않으려면 onCreate가 올바른 위치에 있어야합니다.

onCreate 및 onStart에 대한 설명은 doco를 참조하십시오. 이 다이어그램의 링크는 유용합니다. http://developer.android.com/guide/topics/fundamentals.html#actlife

+0

설명해 주셔서 감사합니다. – Faren

관련 문제