android.support.v4.app.FragmentManager#isDestroyed ( )源码实例Demo

下面列出了android.support.v4.app.FragmentManager#isDestroyed ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public void displayDialog(BaseActivity activity, String tag) {
    if (activity == null || !activity.isActive()) {
        return;
    }

    FragmentManager fragmentManager = activity.getSupportFragmentManager();

    if (fragmentManager == null || fragmentManager.isDestroyed()) {
        return;
    }

    FragmentTransaction transaction = fragmentManager.beginTransaction();
    Fragment oldDialog = fragmentManager.findFragmentByTag(tag);
    if (oldDialog != null) {
        transaction.remove(oldDialog);
    }
    transaction.addToBackStack(null);

    //fix for IllegalStateException: Can not perform this action after onSaveInstanceState
    //http://stackoverflow.com/questions/15729138/on-showing-dialog-i-get-can-not-perform-this-action-after-onsaveinstancestate
    if (!activity.isActive()) { //final safeguard in case activity was closed in the middle
        return;
    }
    FragmentTransaction ft = fragmentManager.beginTransaction();
    this.show(ft, tag);
}
 
public void displayDialog(BaseActivity activity) {
    if (activity == null || !activity.isActive()) {
        return;
    }

    FragmentManager fragmentManager = activity.getSupportFragmentManager();

    if (fragmentManager == null || fragmentManager.isDestroyed()) {
        return;
    }

    FragmentTransaction transaction = fragmentManager.beginTransaction();
    Fragment oldDialog = fragmentManager.findFragmentByTag(BasePopupDialog.FRAGMENT_TAG);
    if (oldDialog != null) {
        transaction.remove(oldDialog);
    }
    transaction.addToBackStack(null);

    //fix for IllegalStateException: Can not perform this action after onSaveInstanceState
    //http://stackoverflow.com/questions/15729138/on-showing-dialog-i-get-can-not-perform-this-action-after-onsaveinstancestate
    if (!activity.isActive()) { //final safeguard in case activity was closed in the middle
        return;
    }
    FragmentTransaction ft = fragmentManager.beginTransaction();
    this.show(ft, BasePopupDialog.FRAGMENT_TAG);
}
 
源代码3 项目: robocar   文件: ConnectorFragment.java
private static ConnectorFragment get(FragmentManager fm) {
    if (fm.isDestroyed()) {
        throw new IllegalStateException("Can't get fragment after onDestroy");
    }

    Fragment fragment = fm.findFragmentByTag(FRAGMENT_TAG);
    if (fragment != null && !(fragment instanceof ConnectorFragment)) {
        throw new IllegalStateException("Unexpected fragment instance was returned by tag");
    }
    return (ConnectorFragment) fragment;
}
 
源代码4 项目: android-ActionSheet   文件: ActionSheet.java
public void show(final FragmentManager manager, final String tag) {
    if (!mDismissed || manager.isDestroyed()) {
        return;
    }
    mDismissed = false;
    new Handler().post(new Runnable() {
        public void run() {
            FragmentTransaction ft = manager.beginTransaction();
            ft.add(ActionSheet.this, tag);
            ft.addToBackStack(null);
            ft.commitAllowingStateLoss();
        }
    });
}