사망 :단검 2 및 활동 내가 Dagger2 사용하여 응용 프로그램 구성 요소는 응용 프로그램의에서 onCreate에서 인스턴스화를
@Override
public void onCreate() {
super.onCreate();
mComponent = DaggerApplicationComponent.builder()
.applicationModule(new ApplicationModule(this))
.build();
}
단검이 사용하는 데이터를 저장하는 클래스이다 "CacheRepository"을 관리하고
사용자가 앱에서
문제점 : 시스템에서 응용 프로그램을 종료하면 응용 프로그램이 삭제되고 구성 요소의 인스턴스가 손실됩니다. 하지만 앱을 다시 시작하면 앱이 캐시에서 데이터를 가져 오는 것을 포함하여 이전 상태로 복원하려고 시도합니다. 이제는 다시 초기화되었습니다. 따라서 데이터가 null 인 경우 앱이 다운됩니다.
어떻게 방지 할 수 있습니까?
쉬운 옵션은 시스템에 의해 종료 될 때 앱을 처음부터 다시 시작하도록하는 것이지만 그렇게 할 해결책을 찾지 못했습니다.
다른 솔루션은 SharedPreferences (또는 모든 종류의 저장소)에 캐시를 저장하는 것이지만 캐시의 대부분의 데이터가 일시적이므로이 솔루션이 마음에 들지 않아 앱이 더 복잡해집니다.
'어떻게 방지 할 수 있습니까? '중요한 정보를 디스크 ('SharedPreferences', sqlite, 일반 파일)에 저장하거나'Bundle'에 저장해야합니다. – azizbekian
Realm, sqllite 등을 사용하여 데이터를 로컬에서 유지할 수 있습니다. 또 다른 솔루션은 단검 CacheRepository의 Custom Scopes를 조사하는 것입니다. – willermo
@willermo 네,하지만 이건 제가 피하고 싶습니다. 구성 요소의 데이터는 앱이 살아있을 때만 사용해야하고 처음부터 앱을 다시 시작할 때 필요하지 않습니다. – Eselfar