2011-11-02 4 views

답변

3

찾는 방법은 mother 클래스에서 구현할 수있는 onResume 메소드 일 수 있습니다. onResume은 처음으로 활동을 시작할 때도 호출된다는 것을 알아야합니다. 활동의 라이프 사이클 봐 :

+1

그래서 onResume에 함수 업데이트가 있으면 어떻게 될까요? 활동 첫 번째 시작/구성 변경시 의도하지 않은 경우에도 업데이트가 호출됩니다. –

+1

이 답변은 어떻게 도움이됩니까? 'onResume()'은 마디 활동이 처음 시작될 때와 자식 활동에서 뒤로 버튼을 눌러 그곳으로 돌아갈 때 모두 호출됩니다. 차이점을 어떻게 감지 할 수 있습니까? – LarsH

4

JS의 대답은 바로 여기,하지만 http://developer.android.com/images/activity_lifecycle.png

안부, 일부 디버깅 코드입니다.

는 활동의 상단에 상수로 요청 코드를 선언 : 활동이 완료되면

Intent intent = new Intent(this, NewActivity.class); 
startActivityForResult(intent, OPEN_NEW_ACTIVITY); 

하는 일을 수행 새 활동을 시작하는 곳

public static final int OPEN_NEW_ACTIVITY = 123456; 

이를 넣습니다. 설명서에는 resultCode을 사용하는 것이 좋지만 상황에 따라 결과는 RESULT_OK 또는 RESULT_CANCELED 일 수 있습니다. 그래서 나는 그것을 버릴 것이다.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == OPEN_NEW_ACTIVITY) { 
     // Execute your code on back here 
     // .... 
    } 
} 

어떤 이유로이 항목을 조각에 넣을 때 문제가있었습니다. 그래서 당신은 그것을 활동에 넣어야 할 것입니다.

0

onBackPressed() 메서드와 onOptionsItemSelected() 메서드를 모두 재정의하고 거기에 논리를 추가 할 수도 있습니다. 예를 들어 이것을 BaseActivity에 넣으면 다른 액티비티가 다음과 같이 확장됩니다.

@Override 
public void onBackPressed() { 
    // your logic 
    super.onBackPressed(); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     // your logic 
    } 
    return super.onOptionsItemSelected(item); 
} 
관련 문제