2011-03-08 4 views
2

Android 앱에 두 가지 Activity 클래스가 있다고 가정합니다. B 액티비티 안에는 액티비티 A가 존재하고 인스턴스화 된 것을 알고 있습니다. 은 활동 객체 B에서 활동 객체 A에 액세스하는 적절한 방법은 무엇입니까?Android에서 인스턴스화 된 Activity 객체를 다른 Activity에서 참조하려면 어떻게해야합니까?

+0

아마 내 사업이 아니라는 것을 알고 있지만 나는 묻지 않을 수 있습니다. 무엇을하고 싶습니까? – bigstones

+0

그렇지 않습니다. 어떤 문제를 해결하려고합니까? –

답변

2

어떻게하면 을 알 수 있습니까? 활동 A가 아직 주위에 있습니까? 당신은 할 수 없습니다. OS는 그것을 처리하고 당신은 전경에있는 것 이외의 다른 활동에 대해 아무것도 알지 말아야합니다.

데이터를 전달하려면 인 텐트를 사용하거나 경우에 따라 정적 변수 만 사용하십시오.

+0

자, 액티비티간에 응용 프로그램 전체 상태 변수를 저장할 적절한 곳이 있습니까? –

+0

정적 변수는 프로세스가 진행되는 동안 만 존재하지만 액티비티가 포그 라운드를 떠난 후 언제든지 프로세스를 종료 할 수 있습니다. 환경 설정/로컬 파일 저장소는 영구적이며 응용 프로그램을위한 값을 저장합니다. 고마워요. –

+0

. 한 가지 사실은 실제로 활동이 활성화되지 않은 후에도 변수가 지속되지 않기를 바란다. 애플리케이션 전반의 일시적인 데이터를 저장할 수있는 곳이 있습니까? 환경 설정과 비슷하지만 지속적이지 않습니다. (응용 프로그램이 시작될 때 특정 환경 설정 데이터를 지울 수는 있겠지만) –

1

활동에 직접 액세스 할 수 없습니다. 활동간에 데이터를 전달하는 유일한 메커니즘은 Intent 메커니즘입니다.

+0

전혀 사실이 아닙니다. 활동 내에서 onCreate를 수행하는 동안 활동은 별도의 클래스에있는 정적 변수에 자체 참조를 저장할 수 있습니다. 다른 클래스는 해당 인스턴스를 참조한 다음 클래스가 구현 한 인터페이스에 액세스 할 수도 있습니다. 신청할 때마다 이렇게합니다. – AndroidDev

+0

활동이 완료되면 활동 참조가 활동 참조를 보유하는 정적 변수에서 활성 상태로 유지되고 gc가이를 해제하지 않습니다. – takesavy

관련 문제