2011-12-07 3 views
6

외부 클래스에서 활동의 컨텍스트를 사용하여 한 활동에서 다른 활동으로 데이터를 전달하려면 startActivity를 호출합니다.startActivity 매번 Activity의 새 인스턴스를 생성합니다.

이 전송 될 나는 의도를 만드는 방법의 한 예이다 : 편집

mContext.startActivity(mIntent); 

: 가 미안 해요, 난에서 틀렸다

public static Intent createSearchIntent(Context context, Class<?> cls) { 
    Intent i = new Intent(ACTION_SEARCH, null, context, cls); 
    return i; 
} 

이것은 내가 활동을 시작하는 방법입니다 무슨 일이야. startActivity를 호출하면 액티비티가 파기되지 않지만 항상 인 텐트를 보내고있는 액티비티에는 onCreate 메소드가 호출되어 있으므로, 액티비티의 새 인스턴스가 일시 중지/중단 된 세션으로 돌아가는 대신 생성되고 있음을 짐작하고 있습니다.

일시 중지/중지 된 활동으로 돌아갈 수 있도록 변경하려면 어떻게해야합니까?

+1

시스템의 리소스가 부족하지 않으면 활동이 종료되지 않아야합니다. 코드를 포함하도록 질문을 편집하십시오. –

+0

당신의 활동이 어떻게 파괴되었다고 말할 수 있습니까? 그 활동을 위해 logcat에서 stacktrace를 보았습니까? – user370305

답변

8

이것은 :

이 활동의 ​​라이프 사이클이다. 이전에 시작한 활동을 스택 맨 위로 되돌리려면 플래그를 의도에 추가 한 다음 해당 활동을 시작해야합니다. startActivity(i)을 'i'를 의도 이름으로 사용하십시오.
다른 플래그 목록은 here입니다.

+0

이것은 정확히 내가 필요한 것입니다. 감사합니다! – ayelder

+0

감사. 그것은 나를 위해 일했습니다. –

4

활동 A의 활동 B는 기본적으로 활동 A 자체를 파괴하지 않으며, 활동 A를 통해 화면 오버랩되는 활동 B가 표시됩니다. Back 버튼을 눌러 확인할 수 있습니다. 당신이 플래그를 사용 할 때 http://developer.android.com/reference/android/app/Activity.html

+0

죄송합니다, 정확합니다. 나는 이것을 반영하기 위해 나의 질문을 변경했다. – ayelder

관련 문제