mainActivity, onCreate (...) 메소드에서 멤버 변수를 초기화하는 액티비티가 있습니다. 이 변수는 onStart() 및 onStop() 메서드에서 사용됩니다.Android : 멤버 변수가 null이 됨
아주 간단합니다. 이제 문제는 내 사용자가 onStop() 메소드에서 발생하는 NullPointerException 오류 보고서를 받기 시작한 것입니다.
광범위하게 원인을 찾고 있었고 android가 메모리를 확보하기로 결정했을 때 정적 변수가 null이 될 수 있음을 이해하지만 onCreate()에서 초기화되는 멤버 변수가있는 대/소문자를 찾을 수 없습니다. . 코드는 다음입니다 :
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener, SharedPreferences.OnSharedPreferenceChangeListener {
private MySvc mySvc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mySvc = DI.i().getMySvc();
...
}
@Override
protected void onStart() {
super.onStart();
mySvc.start();
}
...
@Override
protected void onStop() {
super.onStop();
//here I get NPE
mySvc.stop();
}
}
}는 상황이 더욱 신비하려면 I 앱의 특정 버전에서만이 충돌 보고서를하기 시작하지만 이전 버전) (ONSTART에서 같은 동작을 및 onStop().
나는 어떤 힌트에도 감사 할 것입니다.
편집 :.
- DI.i() getMySvc(); 싱글 톤 패턴에 따라 null이 반환되지 않습니다.
- MySvc는
MySvc
은 안드로이드 VM 그것을 필요로 GC 선택할 수 있습니다 무엇에 따라
이것을 확인해보십시오. http://stackoverflow.com/questions/151777/saving-activity-state-in-android – PedroAGSantos
을 검색하는 것으로 생각됩니다. DI.i(). getMySvc(); ''null'을 반환합니까? –
@subspider이 링크는이 질문에 어떻게 적용됩니까? –