2012-07-16 2 views
1

내 응용 프로그램에 많은 프로세스가 있다고 가정합니다.
응용 프로그램 onCreate()에 일부 초기화 코드 (실제로 정적 변수에 응용 프로그램 컨텍스트 저장)를 실행하려고합니다. 하지만 일부 프로세스에서는 onCreate()가 동일한 프로세스에서 다른 코드보다 먼저 실행되지 않으므로 캐시 된 컨텍스트에 액세스 할 수 없습니다.
동일한 프로세스의 모든 코드보다 먼저 실행해야하는 init 코드 (응용 프로그램 컨텍스트 저장)는 어디에 두어야합니까?안드로이드에 프로세스 초기화 콜백이 있습니까?

+0

Application 클래스의 onCreate()는 다른 것보다 먼저 실행되어야합니다. 당신이 관찰하고 있다고 생각하는 것을 더 자세하게 설명하십시오. –

+0

다중 프로세스가있을 때도 올바른가? 이제 내 경우에 일부 프로세스가이 규칙을 따르지 않는다는 것입니다 ... – Bear

+0

여러 프로세스가있는 경우 Application 클래스의 인스턴스가 만들어 질 때 각 프로세스 **에서 인스턴스화됩니다. 그러면 onCreate()가 호출됩니다. 이는 다른 구성 요소가 작성되기 전에 완료됩니다. –

답변

1

우리가 채팅에서했던 토론에 따르면, 당신은 일부 헬퍼 클래스의 정적 초기화 중에 응용 프로그램의 Context를 얻으려고하기 때문에 문제가 발생합니다. 내가 제시 한 다음 호출 된 것)

이 헬퍼 클래스 만 안드로이드 구성 요소에서 사용되는

경우 은 다음 시간에 안드로이드 구성 요소 클래스 Application.onCreate (호출하고 당신은 거기에서 컨텍스트를 얻을 수 있습니다 . Android 구성 요소에서 실제 전화가 걸려서 컨텍스트를 가져올 때까지 기다려야합니다.

도우미 클래스가 인스턴스화되는 즉시 시도하지 마십시오. 필요할 때만하십시오.

관련 문제