以下全局变量类
> package com.app.kuwomusic.value;
>
> import android.support.v4.app.FragmentManager;
>
> import com.app.kuwomusic.MainActivity;
>
> /** * Created by Administrator on 2015/10/10. */
> public class GolobValue {
> /**
> * 全局Activity
> */
> public static MainActivity MAIN;
> /**
> * 碎片管理者
> */
> public static FragmentManager MANAGER; }
以下是变量赋值的地方
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initGoloValue();
loadSplash();
Message msg=Message.obtain();
handler.sendMessageDelayed(msg,3000);
}
/**
* 初始化全局变量
*/
private void initGoloValue() {
GolobValue.MAIN=this;
GolobValue.MANAGER=getSupportFragmentManager();
}
以下是跳转逻辑
* 替换当前FRAgment
* @param newFragment 要替换的Fragment
* @param nowFragment 被替换的Fragment
* @param bundle 携带的数据
* @param addStack 是否加入回退栈
*/
public static void changeFragment(Fragment newFragment,Fragment nowFragment,Bundle bundle,boolean addStack){
if(newFragment==null){
return;
}
if(GolobValue.MANAGER==null){
return;
}
FragmentTransaction ft=GolobValue.MANAGER.beginTransaction();
if(ft==null){
return;
}
ft.replace(R.id.main,newFragment);
if(bundle!=null){
newFragment.setArguments(bundle);
}
if(addStack){
ft.addToBackStack(null);
}
//ft.setCustomAnimations();
ft.commitAllowingStateLoss();
}
以下是解决方法,在MainActivity中的销毁代码中取消全局变量的赋值
@Override
protected void onDestroy() {
GolobValue.MAIN=null;
GolobValue.MANAGER=null;
super.onDestroy();
}