개발 시작한지 얼마안된 초보 개발자입니다
현재 제가 개발하는 앱이 있는데 커스텀 탭을 여러개 만들어서 용도대로 나누어서 개발하는 중인데
이미지를 api를 통해 post를 해야 할 일이 생겨서 일단 갤러리에서 사진을 받아오자 라는 생각에
fragment에서 권한을 준 다음
public void goToAlbum() {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(MediaStore.Images.Media.CONTENT_TYPE);
startActivityForResult(intent,PICK_FROM_ALBUM);
}
이런 식으로 앨범을 열었습니다만 앨범은 잘열리는데 동시에 앱은 종료가 되면서
2019-09-24 12:27:42.185 10361-10361/com.example.loginproject E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.loginproject, PID: 10361
java.lang.IllegalStateException: Failure saving state: active TabFragment2{35cc415} has cleared index: -1
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManager.java:3016)
at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:134)
at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:591)
at androidx.appcompat.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:510)
at android.app.Activity.performSaveInstanceState(Activity.java:1496)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1386)
at android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:4721)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4025)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4084)
at android.app.ActivityThread.-wrap24(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1622)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
이런 식으로 오류가 나더군요
구글링을 해보니 주로 AsyncTask를 사용하는 fragment가 재생성되면서 충돌한다
재생성을 막기위해
setRetainInstance(true);
이거를 onCreateView나 onCreate 안에 넣으면 해결된다 이런말도 있어서 썼다 지웠다 하면서 여러가지 시도해봤는데 안되네요..
어떻게 해결해야 할까요