“;java.lang.IllegalStateException:活动已被销毁”;在Android上恢复碎片活动后

“;java.lang.IllegalStateException:活动已被销毁”;在Android上恢复碎片活动后,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,我正在使用这种方法: 我试图从第一个片段推送片段,在恢复FragmentActivity之后,此操作会导致“Activity has destroming”错误。当第一次推送片段时,它工作正常,但当我暂停(最小化应用程序)该片段活动,重新打开它,然后尝试推送片段时,它给出了错误。我知道这个问题已经被问过很多次了,但我无法从中得到任何解决方案 错误 02-05 11:51:01.889:E/AndroidRuntime(379):致命异常:主 02-05 11:51:01.889:E/Androi

我正在使用这种方法:

我试图从第一个片段推送片段,在恢复FragmentActivity之后,此操作会导致“Activity has destroming”错误。当第一次推送片段时,它工作正常,但当我暂停(最小化应用程序)该片段活动,重新打开它,然后尝试推送片段时,它给出了错误。我知道这个问题已经被问过很多次了,但我无法从中得到任何解决方案

错误

02-05 11:51:01.889:E/AndroidRuntime(379):致命异常:主
02-05 11:51:01.889:E/AndroidRuntime(379):java.lang.IllegalStateException:活动已被销毁
02-05 11:51:01.889:E/AndroidRuntime(379):在android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)
02-05 11:51:01.889:E/AndroidRuntime(379):在android.support.v4.app.BackStackRecord.committernel(BackStackRecord.java:595)
02-05 11:51:01.889:E/AndroidRuntime(379):在android.support.v4.app.BackStackRecord.committelowingstateloss(BackStackRecord.java:578)
02-05 11:51:01.889:E/AndroidRuntime(379):位于com.app.main.AppMainTabActivity.pushFragments(AppMainTabActivity.java:650)
02-05 11:51:01.889:E/AndroidRuntime(379):在com.app.home.home$ExpandableListAdapter$1.onClick(home.java:530)
02-05 11:51:01.889:E/AndroidRuntime(379):在android.view.view.performClick(view.java:2408)
02-05 11:51:01.889:E/AndroidRuntime(379):在android.view.view$PerformClick.run(view.java:8816)
02-05 11:51:01.889:E/AndroidRuntime(379):位于android.os.Handler.handleCallback(Handler.java:587)
02-05 11:51:01.889:E/AndroidRuntime(379):位于android.os.Handler.dispatchMessage(Handler.java:92)
02-05 11:51:01.889:E/AndroidRuntime(379):在android.os.Looper.loop(Looper.java:123)上
02-05 11:51:01.889:E/AndroidRuntime(379):位于android.app.ActivityThread.main(ActivityThread.java:4627)
02-05 11:51:01.889:E/AndroidRuntime(379):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-05 11:51:01.889:E/AndroidRuntime(379):位于java.lang.reflect.Method.invoke(Method.java:521)
02-05 11:51:01.889:E/AndroidRuntime(379):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-05 11:51:01.889:E/AndroidRuntime(379):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-05 11:51:01.889:E/AndroidRuntime(379):在dalvik.system.NativeStart.main(本机方法)
我单击第一个片段中的可展开listview项,它将推送第二个片段。我在BaseExpandableListAdapter中显示错误

AppMainFragmentActivity中的推送和弹出方法

public void pushFragments(String tag, Fragment fragment, boolean shouldAnimate, boolean shouldAdd) {
    if (shouldAdd) {
        mStacks.get(tag).push(fragment);
    }

    if (!isFinishing()) {
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction ft = manager.beginTransaction();
        if (shouldAnimate)
            ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
        ft.replace(R.id.realtabcontent, fragment);
        ft.commit();
        }
    else {
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction ft = manager.beginTransaction();
        if (shouldAnimate)
            ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
        ft.replace(R.id.realtabcontent, fragment);
        ft.addToBackStack(null);
        ft.commitAllowingStateLoss();//error shows here also.
    }
}

public void popFragments() {
    /*if (!isFinishing()) { }*/
    Fragment fragment = mStacks.get(mCurrentTab).elementAt(mStacks.get(mCurrentTab).size() - 2);
    /*pop current fragment from stack.. */
    mStacks.get(mCurrentTab).pop();

    FragmentManager manager = getSupportFragmentManager();
    FragmentTransaction ft = manager.beginTransaction();
    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
    ft.replace(R.id.realtabcontent, fragment);
    ft.commit();
}
主片段

public class Firstfragment extends BaseFragment
{
@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

private void setupActionBar() {
    // TODO Auto-generated method stub

    actionBar = getSherlockActivity().getSupportActionBar();

    actionBar.setDisplayHomeAsUpEnabled(false);


    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    View cView = getSherlockActivity().getLayoutInflater().inflate(R.layout.actionbarbutton, null);
    final TextView cTitletext = (TextView) cView.findViewById(R.id.action_title_home);
    final ImageButton cSection_Menu = (ImageButton) cView.findViewById(R.id.imgbtn_1);

    actionBar.setCustomView(cView);
    cSection_Menu.setImageResource(R.drawable.section);
    cSection_Menu.setVisibility(View.VISIBLE);

    cTitletext.setVisibility(View.VISIBLE);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.home_newspaper_list, container,false);
    lv = (ExpandableListView) view.findViewById(R.id.newspapers_expandable);

    setHasOptionsMenu(true);
    return view;
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    flag = true;
    outState.putBoolean("flag", flag);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public void onPause() {
    super.onPause();
    flag = true;
    AppConstants.isFromHomeDetailView = false;
    index = lv.getFirstVisiblePosition();
}

@Override
public void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
}

@Override
public void onResume() {
    super.onResume();
    lv.setSelectionFromTop(index, 0);

    System.out.println(" onResume Started > "+flag);
    setupActionBar();
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    HashMap<String, ArrayList<HashMap<String,String>>> nlist = ma.newspaper_list;
    ArrayList<String> languagelist = ma.languagelist;

    expListAdapter = new ExpandableListAdapter(getActivity(), languagelist, nlist);

    lv.setAdapter(expListAdapter);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    return false;
}

public class ExpandableListAdapter extends BaseExpandableListAdapter
{

    /* methods for BaseExpandableListAdapterlike getchildcount() etc. */

    @Override
    public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        View view = null;
        view.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(final View v) {
                secondfragment nl = new secondfragment ();
                mActivity.pushFragments(AppConstants.TAB_A,nl,true, true);//****error on that line after resuming activity**.**
            }
        });
        return view;
    }
}

}
public类Firstfragment扩展了BaseFragment
{
@凌驾
公共事务主任(活动){
超级转速计(活动);
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
私有void setupActionBar(){
//TODO自动生成的方法存根
actionBar=getSherlockActivity().getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
View cView=getSherlockActivity().GetLayoutFlater().inflate(R.layout.actionbarbutton,null);
最终文本视图cTitletext=(文本视图)cView.findViewById(R.id.action\u title\u home);
最终图像按钮C分区菜单=(图像按钮)cView.findViewById(R.id.imgbtn_1);
actionBar.setCustomView(cView);
cSection_Menu.setImageResource(R.drawable.section);
cSection_Menu.setVisibility(视图可见);
cTitletext.setVisibility(View.VISIBLE);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.home\u-paper\u-list,container,false);
lv=(ExpandableListView)view.findViewById(R.id.papers\u expandable);
设置选项菜单(真);
返回视图;
}
@凌驾
SaveInstanceState上的公共无效(束超出状态){
super.onSaveInstanceState(超出状态);
flag=true;
outState.putBoolean(“标志”,标志);
}
@凌驾
创建选项菜单(菜单菜单,菜单充气机){
super.onCreateOptions菜单(菜单,充气机);
}
@凌驾
公共无效暂停(){
super.onPause();
flag=true;
AppConstants.isFromHomeDetailView=false;
index=lv.getFirstVisiblePosition();
}
@凌驾
公共void onStop(){
//TODO自动生成的方法存根
super.onStop();
}
@凌驾
恢复时公开作废(){
super.onResume();
lv.setSelectionFromTop(索引,0);
System.out.println(“onResume start>”+标志);
setupActionBar();
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
HashMap nlist=ma.paper\u list;
ArrayList languagelist=ma.languagelist;
expListAdapter=新的ExpandableListAdapter(getActivity(),languagelist,NLList);
lv.setAdapter(expListAdapter);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
返回false;
}
公共类ExpandableListAdapter扩展了BaseExpandableListAdapter
{
/*BaseExpandableListAdapterlike getchildcount()等的方法*/
@凌驾
公共视图getChildView(最终整数组位置、最终整数子位置、布尔isLastChild、视图转换视图、视图组父级){
视图=空;
view.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(最终视图v){
secondfragment nl=新的secondfragment();
MacActivity.pushFragments(AppConstants.TAB_A,nl,true,true);//****恢复活动后该行出现错误****
}
});
返回视图;
}
}
}
看起来像你