Check FragmentViewLifecycleOwner

pull/208/head
M66B 3 years ago
parent 91b3e149d5
commit 3f1c87a563

@ -36,6 +36,7 @@ import androidx.lifecycle.LifecycleService;
import androidx.lifecycle.OnLifecycleEvent; import androidx.lifecycle.OnLifecycleEvent;
import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -243,6 +244,30 @@ public abstract class SimpleTask<T> implements LifecycleObserver {
} }
private void deliver() { private void deliver() {
if ("androidx.fragment.app.FragmentViewLifecycleOwner".equals(owner.getClass().getName()))
try {
Field mFragment = owner.getClass().getDeclaredField("mFragment");
mFragment.setAccessible(true);
Fragment fragment = (Fragment) mFragment.get(owner);
if (fragment != null) {
if (fragment.getActivity() == null) {
Log.w("Fragment without activity" +
" task=" + name +
" fragment=" + fragment.getClass().getName() +
" lifecycle=" + owner.getLifecycle().getCurrentState());
return;
}
if (fragment.getContext() == null) {
Log.w("Fragment without context" +
" task=" + name +
" fragment=" + fragment.getClass().getName() +
" lifecycle=" + owner.getLifecycle().getCurrentState());
return;
}
}
} catch (Throwable ex) {
Log.w(ex);
}
try { try {
onPostExecute(args); onPostExecute(args);
} catch (Throwable ex) { } catch (Throwable ex) {

Loading…
Cancel
Save