2011-04-12 5 views
3

이라는 두 가지 활동이 있습니다.. 버튼을 누르면 카트로 이동합니다.. 나는 버튼이 활동 에 관해서 누를 때 들어 Android 활동주기 문제

나는 장바구니에 활동을 다음과 같은 코드

public void onClick(View v) { 
    Intent intent = new Intent(this, Cart.class); 
    startActivity(intent); 
} 

을 사용했다. 그

public void onClick(View v) { 
    Intent intent = new Intent(this, Home.class); 
    startActivity(intent); 
} 

활동

잘 변화하고 있지만, onCreate 방법은 활동이 시작할 때마다 호출합니다.

Activity의 훌륭한 라이프 사이클인가요? 그렇지 않다면 어떻게 해결할 수 있습니까?

+0

당신은 무엇을 해결하고 싶은지 말하지 않았습니다. 달성하려는 행동은 무엇입니까? –

답변

1

어떻게 해결할 수 있습니까? 이것이 활동의 ​​의도 된 행동입니다. 당신이 당신의에서 onCreate 방법의 메소드가 호출되는 것을 원하지 않는 경우 그럼에도 불구하고,이 같은 플래그를 사용할 수 있습니다

public class YourActivity extends Activity { 

    private boolean firstStart = true; 

    public void OnCreate(...) { 

     if (firstStart) { 
     //do your stuff here 
     firstStart = false; 
     } 

    } 
} 
1

는 두 개의 활동을 동시에 실행 한 경우 TabHost을 사용하는 것이 좋습니다.

0

아니요,이 경우 사이클이 올바르지 않다고 생각합니다.

을 누르면 ...> 등 -> 장바구니 - -> 홈 -> 카트 -> 홈 -> 카트 홈이 디자인

, 당신은 지속적으로 성장 활동의 스택, 예를 끝낼 수 있습니다 뒤로 단추는이 스택의 각 항목을 차례로 순환합니다.

나는 그것이 당신이 원하는 것이라고 생각하지 않습니다. 사용자가 집에있을 때 장바구니에 들어가면, 그는 뒤로를 눌러 집으로 돌아갈 것입니다. 이제 스택에는 Home 만 포함되어 있으며 Back을 다시 누르면 종료됩니다. 그리고 당신이 보여준 발췌 문장을 보면, 장바구니에서 언급 한이 버튼을 누르면 똑같은 일이 일어나야한다고 생각합니다.

그래서 집으로 돌아가려면 장바구니에서 finish()를 호출해야합니다. 장바구니의 내용을 복원하려면 onSaveInstanceState()에 의존해서는 안됩니다. 예를 들어 SQLite 데이터베이스를 사용할 수 있습니다.

카트가 시작될 때마다 onCreate()가 호출되지만 Home에서 한 번만 호출됩니다.

하지만 실제로는 장바구니에서 집으로 돌아가는 버튼이 없어야합니다. 이것은 iOS에서 일하는 방식 일 수 있지만, Android에서는 Back 버튼이있어서 사용자는 그것을 알고 사용하며 화면에이 버튼을 복제 할 필요가 없습니다.

1

문제점을 해결하려면 활동 라이프 사이클을 이해해야하며 한 활동에서 다른 활동으로 전환 할 때 활동 라이프 사이클 메소드가 호출되어야합니다.

enter image description here