Ich bin vor diesem besonderen Absturz auf wenige GeräteFragment Absturz auf Tierbew zerstört
Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1515)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:617)
at net.trellisys.papertrell.components.mediagallery.MGBaseActivity$initQuickControls.doInBackground(MGBaseActivity.java:136)
at net.trellisys.papertrell.components.mediagallery.MGBaseActivity$initQuickControls.doInBackground(MGBaseActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Was ich tue, wird geladen bin ein Fragment
auf ein Activity
eine Async
Methode.
Ich kann diesen Fehler in meiner Seite nicht neu erstellen, aber dieses Problem in vielen Geräten gesehen. Kann mir jemand mit diesem Fehler helfen?
Hier ist der Code-Schnipsel: -
public class initQuickControls extends AsyncTask<String,Void,String> {
String fromPage = "";
public initQuickControls(String from){
fromPage = from;
}
QuickControlsFragment quicFrag = null;
@Override
protected String doInBackground(String... strings) {
quicFrag = new QuickControlsFragment(fromPage);
FragmentManager fragManager = getSupportFragmentManager();
fragManager.beginTransaction().replace(R.id.quickcontrols_container,quicFrag).commitAllowingStateLoss();
return "EXECUTED";
}
protected void onPostExecute(String result) {}
}
Und das ist, wie ich die Fragment
nenne: -
new initQuickControls("List").execute("");
Was machst du im besagten Rückruf (auf Aktivität zerstört) - kannst du vielleicht den Code anzeigen? – ishmaelMakitla
Die Antwort ist einfach. Verwenden Sie AsyncTask nicht, um das Fragment in die Aktivität –
@ РоманДрогомирецький zu laden. Sie sagen also, fügen Sie es einfach direkt hinzu. Aber was ist das Problem hier? –