Tôi đang cố gắng sử dụng API mới để chuyển đổi hoạt động chỉ trên kẹo (tôi đang sử dụng phiên bản nhỏ gọn tho), vì vậy tôi đang triển khai hoạt ảnh từ hoạt động A để hoạt động B, trong hoạt động A:Hoạt động chuyển tiếp: Thực hiện dừng hoạt động không được tiếp tục
getWindow().setReenterTransition(null);
getWindow().setExitTransition(null);
getWindow().setAllowEnterTransitionOverlap(false);
getWindow().setAllowReturnTransitionOverlap(false);
vì tôi không quan tâm đến việc nhập cảnh, xuất cảnh của hoạt động này, các hình ảnh động duy nhất mà tôi muốn thấy là trong giao diện chia sẻ với các hoạt động B.
Để khởi chạy Hoạt động B:
ActivityCompat.startActivity(this, intent, ActivityOptionsCompat.makeSceneTransitionAnimation(this, fabButton, getString(R.string.transition_fab)).toBundle());
Và các thiết lập của Hoạt động B:
getWindow().setEnterTransition(new EmptyTransition());
getWindow().setReturnTransition(null);
getWindow().setAllowEnterTransitionOverlap(false);
getWindow().setAllowReturnTransitionOverlap(false);
getWindow().getEnterTransition().addListener(listener).
Một lần nữa Tôi không quan tâm đến việc chuyển nhập chuyển đổi trở lại bởi vì nội dung được ẩn cho đến khi nhập chuyển phương pháp nghe 'onTransitionEnd' được gọi, vì vậy quá trình chuyển đổi của tôi tất cả đều dựa trên yếu tố chia sẻ di chuyển/phát triển từ Hoạt động A sang Hoạt động B và khi quá trình chuyển đổi này kết thúc, tôi sẽ đưa nội dung vào.
Mọi thứ hoạt động tốt nhưng trên các thiết bị không mạnh lắm (vì vậy tất cả đều không Nexus) theo thời gian Hoạt động A âm thầm sụp đổ với:
java.lang.RuntimeException: Performing stop of activity that is not resumed: {com.transferwise.android.debug/com.transferwise.android.activity.LoggedInMainActivity}
Và việc chuyển đổi phần tử chia sẻ xảy ra nhưng sau đó người nghe không được gọi (không phải sự kiện TransitionStart), do đó nội dung không được nhập. Ứng dụng không bị lỗi, người dùng vẫn có thể nhấn lại và "thử lại" nhưng không phải là UX rất tốt.
Thật khó để kiểm tra nó bởi vì nó xảy ra một lần mỗi 10/20 lần và chỉ trên một số thiết bị cụ thể (nó xảy ra nhiều hơn trên Sony Xperia Z3 nhỏ gọn).
Ngoài ra:
Danieles-MacBook-Pro-2:~ danielebottillo$ adb shell dumpsys activity p | grep com.package.main.debug
*APP* UID 10349 ProcessRecord{3b27508d 18371:com.package.main.debug/u0a349}
dir=/data/app/com.package.main.debug-1/base.apk publicDir=/data/app/com.package.main.debug-1/base.apk data=/data/data/com.package.main.debug
packageList={com.package.main.debug}
- ActivityRecord{2f07bdf8 u0 com.package.main.debug/com.package.main.activity.ActivityA t1196}
- ActivityRecord{1e871eb3 u0 com.package.main.debug/com.package.main.activity.ActivityB t1196}
- 28ea3e28/com.android.providers.settings/.SettingsProvider->18371:com.package.main.debug/u0a349 s1/1 u0/0 +27m9s645ms
- ReceiverList{40f2178 18371 com.package.main.debug/10349/u0 remote:39e102db}
- ReceiverList{2e7456a6 18371 com.package.main.debug/10349/u0 remote:dde3801}
- ReceiverList{39e2f1b7 18371 com.package.main.debug/10349/u0 remote:362300b6}
- ReceiverList{3afa7bd5 18371 com.package.main.debug/10349/u0 remote:33e4088c}
ProC# 0: fore F/A/T trm:10 18371:com.package.main.debug/u0a349 (top-activity)
PID #18371: ProcessRecord{3b27508d 18371:com.package.main.debug/u0a349}
Hey. Tôi có cùng vấn đề này. Bạn đã bao giờ tìm ra những gì đã gây ra nó? – black
chỉ là vấn đề bộ nhớ không may –