首页放弃 fragment 自动重建

This commit is contained in:
juntao
2021-04-23 14:49:27 +08:00
parent 328a559ef0
commit 4f81996857
3 changed files with 28 additions and 3 deletions

View File

@ -68,7 +68,6 @@ import java.util.List;
import butterknife.ButterKnife;
import kotlin.Pair;
import kotlin.Unit;
import pub.devrel.easypermissions.EasyPermissions;
import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE;
@ -490,12 +489,31 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
if (preventRecreateFragmentByFragmentManager()) {
outState = discardFragmentFromSaveInstanceState(outState);
}
long bundleSize = getBundleSize(outState);
if (bundleSize > MAX_BUNDLE_SIZE * 1024) {
outState.clear();
}
}
/**
* 是否停用 Activity 重建时 FragmentManager 根据 saveState 自动重建保存的 Fragment 的功能
*/
protected boolean preventRecreateFragmentByFragmentManager() {
return false;
}
private Bundle discardFragmentFromSaveInstanceState(Bundle outState) {
if (outState != null) {
outState.remove("android:support:fragments");
}
return outState;
}
private long getBundleSize(Bundle bundle) {
long dataSize;
Parcel obtain = Parcel.obtain();