У меня есть два действия A и B. В упражнении A я нажимаю кнопку, чтобы перейти к занятию B. В занятии B у меня есть настраиваемое представление группы просмотра.В этом окне я хочу получить изображение в галерее телефона, поэтому я использовал ((Activity) context).startActivityForResult(i, 1);
, чтобы перейти в мою галерею.Но после этого мое приложение будет убито (активность B уничтожена).
Кто-то сказал, что я должен вызвать startActivityForResult для основной операции (операция B), поэтому в пользовательском представлении я отправляю широковещательную рассылку операции B., Я получил действие, затем вызываю startActivityForResult для выбора изображения в галерее, но оно не работает.
Случай 1: когда выбирается изображение в галерее из customview
public void draw_multi(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
((Activity) mContext).startActivityForResult(intent, REQUEST_GET_SINGLE_FILE);
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
default:
break;
}
}
Случай 2: отправкатрансляция из обычного просмотра и получателя в действии B
public void draw_multi(MotionEvent event) {
float x = event.getX() / scale;
float y = event.getY() / scale;
Intent i = new Intent();
i.setAction(ACTION_FILTER);
i.putExtra("action", ACTION_SHOW_NOTIFICATION_MUPDF);
i.putExtra("xLoca", x);
i.putExtra("yLocal", y);
i.putExtra("pageNumber", this.getPageNumber());
mContext.sendBroadcast(i);
}
Получатель в действии B
private class PDFReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getExtras().containsKey("action")) {
String resultAction = intent.getExtras().getString("action");
switch (resultAction) {
case ACTION_SHOW_NOTIFICATION_MUPDF:
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
((Activity) context).startActivityForResult(i, 1);
break;
}
}
}
}
Это журнал ошибок, я не выбрал изображение из списка
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 3299828 bytes
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:160)
at android.os.Handler.handleCallback(Handler.java:891)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:7539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Caused by: android.os.TransactionTooLargeException: data parcel size 3299828 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:1147)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:3981)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:144)
at android.os.Handler.handleCallback(Handler.java:891)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:7539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958) 2019-04-18 23:54:37.148 10237-10237/tve.tve.vnulic I/Process: Sending signal. PID: 10237 SIG: 9
Как я могу это исправить?Пожалуйста, помогите мне, спасибо !!!