2011-08-10 3 views

답변

0

onRestart 이벤트를 사용할 수 있습니까?

+0

아니오. – Patrick

1

가능성있는 아이디어는 프로세스를 역으로 수행하는 것입니다. 즉, 앱에서 활동을 시작했는지 파악할 수 있습니다.

당신이 당신의 다른 활동에서 돌아 왔는지 여부를 onResume()에서 찾고자하는 활동 A가 있다고 가정 해 보겠습니다. startActivityWithResult()를 사용하여 A에서 나가는 다른 모든 활동을 시작하고 결과에 대해 onActivityResult()를 체크인 할 수 있어야합니다. onActivityResult()는 onResume()보다 먼저 호출되므로 onResume()에서 확인할 부울 필드를 설정할 수 있습니다.

그래서 코드는 다음과 같습니다 불가능

private static final int RANDOM_ACTION_CODE= 42; 

private Button fButton; 

private boolean returning= false; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    fButton= (Button) findViewById(R.id.button1); 
    fButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    Intent i= new Intent(this, SecondActivity.class); 
    startActivityForResult(i, RANDOM_ACTION_CODE); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Toast.makeText(this, "returning = " + returning, Toast.LENGTH_LONG).show(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RANDOM_ACTION_CODE) 
     returning= true; 
    else 
     returning= false; 
} 
+0

좋은 생각이지만 작동하지 않습니다. – Patrick

+0

내 답변이 업데이트되었습니다. 이렇게 작동해야합니다. – Tom

관련 문제