2017-03-07 1 views
0

활동이 완전히 파괴 되더라도 Singleton은 살아남을 수 있습니까? 나는 GPS 물건을 할 서비스를 호출하는 안드로이드 위치 관리자에 대한 몇 가지 참조를 가지고, 그것은 1 시간 또는 2 (심지어 응용 프로그램을 최소화하고 화면이 꺼져 있습니다) 잘 작동하지만 약간의 시간이 지나면 업데이 트가 pinging을 중지합니다, 나는 다른 Stack Overflow 스레드를 살펴 보았고 시스템이 메모리를 필요로하는 경우 Singleton이 활성 상태를 유지할 것인지 또는 파괴 될 것인지에 대한 충돌하는 응답을 보았습니다.언제 Android Singleton이 파괴됩니까?

싱글 톤이 오랜 시간 동안 참조를 유지하는 좋은 방법이 아닌 경우 대체 방법은 무엇입니까?

+0

그것은 싱글 톤입니다. 그 수명은 프로세스 중 하나입니다. – Blackbelt

답변

1

싱글 톤의 수명은 초기화하는 시간에 따라 다릅니다. 액티비티로 액티비티를 초기화 할 수 있습니다.이 액티비티는 액티비티가있는 동안에 만 액티브하게 유지합니다. 를 저장하는 경우

가 대체 SQLite는 DB (우선)이나 된 SharedPreferences를 사용하여 Application Context 대신

UPDATE

Activity Context의로 싱글을 응용 프로그램 수준에서 유지 인스턴스화하는

은 (메모리 예외가 발생합니다 많은 양의 데이터).

단일 실행에서 일부 데이터를 사용하려면 싱글 톤 방법이 쉽고 편리합니다.

+0

Singleton의 Application 클래스를 확장 할 수 있습니까? 아니면 Application 클래스를 만들어 싱글턴을 그 안에 넣어야합니까? DB를 사용하지 않는 이유는 데이터만을 필요로하는 클래스에 대한 참조를 저장하기 때문입니다. – ashxu

+1

나는 Application 클래스를 만들고,이 클래스에 Singleton을 넣고이 클래스를 Manifest에 추가한다. 작업 완료 : D –

+0

응용 프로그램 클래스 데이터는 어떤 조건으로 여전히 파괴됩니까? 앱 프로세스가 파괴 된 경우에만? 또는 메모리를 확보하기 위해 여전히 파괴 될 수 있습니까? – ashxu

0

모든 응용 프로그램이 OSGi 컨테이너와 비슷한 것으로 시작되면 응용 프로그램이 시작되면 정적 값이 생성되고 getInstance를 호출하면 app.onDestroy가 모든 메모리로 호출되면 동일하게 발생합니다 풀어 놓고 거기에 singletone 파괴 ...

관련 문제