ResultReceiver nie przetrwa rotacji ekranu
Wdrażam klienta REST w Androidzie. Widziałem przykład użycia aService
wykonać połączenie z serwerem iResultReceiver
być powiadomionym o zakończeniu operacji. Wywoływam usługę z fragmentu i jeśli spróbuję obrócić ekran podczas działania usługi, metoda getActivity () wResultReceiver
zwraca wartość null, ponieważ prawdopodobnie ten fragment nie jest już w układzie.
Metoda wywołania zwrotnego we fragmencie:
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
Response response = (Response) resultData
.getSerializable(RestService.RESULT);
if (resultCode == RestService.SUCCESS
&& response != null) {
if (getActivity() != null) {
recommendationResponse = response;
getLoaderManager().restartLoader(0, new Bundle(),
Fragment.this);
}
}
}
ThegetActivity()
zwraca wartość null. Czy to normalne? Jakiego podejścia mogę użyć, aby zezwolić na powiadamianie nawet przy rotacji ekranu? Lokalna transmisja?