Rzadko otrzymuję ten błąd podczas wykonywania wywołania interfejsu API.
java.lang.IllegalStateException: Fragment not attached to Activity
Próbowałem umieścić kod w isAdded()
metodzie, aby sprawdzić, czy fragment jest aktualnie dodawany do jej aktywności, ale nadal rzadko pojawia się ten błąd. Nie rozumiem, dlaczego nadal otrzymuję ten błąd. Jak mogę temu zapobiec?
Pokazuje błąd na linii
cameraInfo.setId(getResources().getString(R.string.camera_id));
Poniżej znajduje się przykładowe wywołanie interfejsu API, które tworzę.
SAPI.getInfo(getActivity(),
new APIResponseListener() {
@Override
public void onResponse(Object response) {
cameraInfo = new SInfo();
if(isAdded()) {
cameraInfo.setId(getResources().getString(R.string.camera_id));
cameraInfo.setName(getResources().getString(R.string.camera_name));
cameraInfo.setColor(getResources().getString(R.string.camera_color));
cameraInfo.setEnabled(true);
}
}
@Override
public void onError(VolleyError error) {
mProgressDialog.setVisibility(View.GONE);
if (error instanceof NoConnectionError) {
String errormsg = getResources().getString(R.string.no_internet_error_msg);
Toast.makeText(getActivity(), errormsg, Toast.LENGTH_LONG).show();
}
}
});