IllegalStateException异常:活动已被破坏已被、异常、IllegalStateException

由网友(脚踏两只船丶划得更快)分享简介:我收到IllegalStateException异常:活动曾在被摧毁ft.commit() 我已经发布了相关的code,指出错误line.I不知道是什么引起的错误。堆栈跟踪: 二月7日至27日:01:31.776 15571-15571 / com.ms.ha E / AndroidRuntime:致命异常:主要jav...

我收到IllegalStateException异常:活动曾在被摧毁ft.commit()

我已经发布了相关的code,指出错误line.I不知道是什么引起的错误。

堆栈跟踪:

 二月7日至27日:01:31.776 15571-15571 / com.ms.ha E / AndroidRuntime:致命异常:主要
    java.lang.IllegalStateException:活动已被破坏
            在android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1397)
            在android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
            在android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
            在com.ms.ha.activity.MainActivity.articleSelected1(MainActivity.java:248)
            在com.ms.ha.activity.GridActivity3.onClick(GridActivity3.java:98)
            在android.view.View.performClick(View.java:4240)
            在android.view.View $ PerformClick.run(View.java:17721)
            在android.os.Handler.handleCallback(Handler.java:730)
            在android.os.Handler.dispatchMessage(Handler.java:92)
            在android.os.Looper.loop(Looper.java:137)
            在android.app.ActivityThread.main(ActivityThread.java:5103)
            在java.lang.reflect.Method.invokeNative(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:525)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            在dalvik.system.NativeStart.main(本机方法)
 

我需要移动DetailsFragment类的onClick按钮在GridActivity.Thats为什么我使用mainActivity的实例。

GridActivity3.java:

 公共类GridActivity3扩展FragmentActivity实现OnClickListener {

   .......
   .......
     @覆盖
    公共无效的onClick(视图v){

        开关(v.getId()){

         案例R.id.btn_home:

         MainActivity主要=新MainActivity();

         main.articleSelected1(6);


         打破;

        }
      }
    }
 

MainActivity.java:

 公共类MainActivity扩展ActionBarActivity实现OnTabChangeListener,ArticleSelectedListener1 {


 @覆盖
    公共无效onArticleSelected1(INT位置)
    {
        articleSelected1(位置);

    }

    公共无效articleSelected1(INT位置)
    {
 如果(位置== 6)
        {
            // action_bar_hometext.setText(内容);
            FragmentManager经理= getSupportFragmentManager();
            FragmentTransaction英尺= manager.beginTransaction();
            DetailsFragment newFragment =新DetailsFragment();
            ft.replace(R.id.realtabcontent,newFragment);
            ft.addToBackStack(空);
            ft.commit(); ---->第248行

        }
      }
 
QQ账号存在异常,不能参加活动是怎么解除

我不知道如何解决这个error.Anyone可以帮我this.Thank你。 解决方案

您的问题是在GridActivity3

  MainActivity主要=新MainActivity();

     main.articleSelected1(6);
 

Activity类不应该用这样的。 你不应该创建自己的活动的情况下,只是让Android的创建和维护。 如果你想调用 articleSelected1(6); ,把一些数据,以意图再赚回来检查在 MainActivity 然后调用它。 更新 试试这个: 1.在的onClick GridActivity 意图startMain =新的意图(这一点,MainActivity.class);  startMain.putExtra(位置,6); startActivity(startMain); 2。在 MainAcitivty 的onCreated INT POS = getIntent()getIntExtra(位置,0);  articleSelected1(POS);

I am getting IllegalStateException : Activity has been destroyed at ft.commit()

I have posted the relevant code and pointed out the error line.I dont know what cause the error.

Stacktrace:

07-27 02:01:31.776  15571-15571/com.ms.ha E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: Activity has been destroyed
            at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1397)
            at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
            at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
            at com.ms.ha.activity.MainActivity.articleSelected1(MainActivity.java:248)
            at com.ms.ha.activity.GridActivity3.onClick(GridActivity3.java:98)
            at android.view.View.performClick(View.java:4240)
            at android.view.View$PerformClick.run(View.java:17721)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

I need to move DetailsFragment class onClick the button in GridActivity.Thats why I am using the instance of mainActivity.

GridActivity3.java:

public class GridActivity3 extends FragmentActivity implements OnClickListener {

   .......
   .......
     @Override
    public void onClick(View v) {

        switch (v.getId()) {

         case R.id.btn_home:

         MainActivity main= new MainActivity();

         main.articleSelected1(6);


         break;

        }
      }
    }

MainActivity.java:

public class MainActivity extends ActionBarActivity implements OnTabChangeListener,ArticleSelectedListener1 {


 @Override
    public void onArticleSelected1(int position)
    {
        articleSelected1(position);

    }

    public void articleSelected1(int position)
    {
 if(position==6)
        {
            //     action_bar_hometext.setText(content);
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            DetailsFragment newFragment = new DetailsFragment();
            ft.replace(R.id.realtabcontent, newFragment);
            ft.addToBackStack(null);
            ft.commit();    ----> 248th line

        }
      }

I don't know how to solve this error.Anyone can help me with this.Thank you.

解决方案

Your problem is in GridActivity3

     MainActivity main= new MainActivity();

     main.articleSelected1(6);

Activity class shouldn't be use like that. You shouldn't create your own instance of Activity, just let Android create and maintain it. If you want to call articleSelected1(6);, put some data to Intent then get it back to check in MainActivity then call it. UPDATE Try this: 1. In onClick GridActivity Intent startMain = new Intent(this, MainActivity.class); startMain.putExtra("position", 6); startActivity(startMain); 2. in onCreated of MainAcitivty int pos = getIntent().getIntExtra("position", 0); articleSelected1(pos);

阅读全文

相关推荐

最新文章