title: Intent.ACTION_PICK FAILED BINDER TRANSACTION on Nested Fragment
body: <p>I need my users to select image from gallery to upload image to server. I've tried on an Activity and it works fine. But now I need the same codes on a child fragment (nested fragment). But this time, I always got this error when debugging. I even don't use any putExtra() into the intent.</p>
  
  <pre><code>I/Timeline: Timeline: Activity_launch_request time:23741283 intent:Intent { act=android.intent.action.PICK typ=image/* }
  E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 2260252)
  W/ActivityStopInfo: Bundle stats:
  W/ActivityStopInfo:   android:viewHierarchyState [size=2268]
  W/ActivityStopInfo:     android:views [size=2220]
  W/ActivityStopInfo:   android:support:fragments [size=4888]
  W/ActivityStopInfo: PersistableBundle stats:
  W/ActivityStopInfo:   [null]
  D/AndroidRuntime: Shutting down VM
  E/AndroidRuntime: FATAL EXCEPTION: main
      Process: com.xyz.student, PID: 12701
      java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 2260252 bytes
          at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:160)
          at android.os.Handler.handleCallback(Handler.java:873)
          at android.os.Handler.dispatchMessage(Handler.java:99)
          at android.os.Looper.loop(Looper.java:201)
          at android.app.ActivityThread.main(ActivityThread.java:6810)
          at java.lang.reflect.Method.invoke(Native Method)
          at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
        
  </code></pre>
  
  <p>ChildFragment.java</p>
  
  <pre><code>AlertDialog.Builder image = new AlertDialog.Builder(getActivity());
  image.setMessage(R.string.select_method);
  image.setPositiveButton(R.string.method_gallery,
      new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
              imageMethod.dismiss();
              if (ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                  if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
                      requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 7);
                  }
              } else {
                  Intent intent = new Intent(Intent.ACTION_PICK);
                  intent.setType("image/*");
                  getParentFragment().startActivityForResult(intent, GALLERY_INTENT_IMAGE);
              }
          }
      });
  image.setNegativeButton(R.string.method_camera,
      new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
              imageMethod.dismiss();
              captureImage();
          }
      });
  imageMethod = image.create();
  </code></pre>
  
  <p>ParentFragment.java</p>
  
  <pre><code>@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      final FragmentManager childFragmentManager = getChildFragmentManager();
      if (childFragmentManager != null) {
          final List&lt;Fragment&gt; nestedFragments = childFragmentManager.getFragments();
          if (nestedFragments == null || nestedFragments.size() == 0) return;
          for (Fragment childFragment : nestedFragments) {
              if (childFragment != null &amp;&amp; !childFragment.isDetached() &amp;&amp; !childFragment.isRemoving()) {
                  childFragment.onActivityResult(requestCode, resultCode, data);
              }
          }
      }
  }
  </code></pre>