0

The app crashes only when I start this fragment (for the first time) and press the back button at the same time. I have not overrided onBackPressed() in my activity. Code:
Fragment Class

public class Fragment_View extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view =  inflater.inflate(R.layout.fragmentview, container, false);
    root_view = view;
    setupExtraViews();
    return view;
}

private void setupExtraViews() {
    if (root_view.findViewById(R.id.someview) != null) {
            Fragment_Top_Bar top_bar = new Fragment_Top_Bar();
        //TODO: app crashes here on the .commit part when this fragment is started and back button is pressed at the same time.
        getChildFragmentManager().beginTransaction().
                add(R.id.someview, top_bar).commit();
    }
}
...

} The exception is:

E/InputEventSender﹕ Exception dispatching finished signal.
E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI﹕ java.lang.IllegalStateException: Activity has been destroyed
        at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1387)
        at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
        at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
        at    in.com.xxxxxx.main_app.settings.Fragment_Class.setupExtraViews(Fragment_Class.java:45)
        at in.com.xxxxxx.main_app.settings.Fragment_Class.onCreateView(Fragment_Class.java:24)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
        at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:501)
        at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:176)
        at android.app.Activity.onKeyUp(Activity.java:2274)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2985)
        at android.app.Activity.dispatchKeyEvent(Activity.java:2508)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2174)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4505)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4472)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4033)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4056)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4171)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4064)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4228)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4033)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4056)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4064)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4033)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4056)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4204)
        at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4364)
        at     android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2257)
        at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1907)
        at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1898)
        at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2234)
        at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:138)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:5356)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
        at dalvik.system.NativeStart.main(Native Method)

And then this exact same error shows again. So the app crashes when the back button is pressed while the fragment is being created, and then this exception shows up twice. I figured that .commit() is asynchronous. So I think, between the time the schedular actually commits and the time the schedular gets the commit, the activity is being destroyed by onBackPressed. Hence the error. Im not sure that this is the actual reason. So please help...

Rishabh Poddar
  • 919
  • 3
  • 9
  • 17
  • How and where is Fragment_View added to ur Activity? – cYrixmorten Dec 28 '14 at 11:55
  • Override the `onViewCreated(...)` method in the `Fragment` and use the view passed to it (it's the view returned by `onCreateView(..)`) to add your child `Fragment`. – Squonk Dec 28 '14 at 12:18
  • Thanks for replying, but performing the extra setup in onViewCreated doesnt work. It still gives the same error! – Rishabh Poddar Dec 28 '14 at 14:01

0 Answers0