2016-08-30 19 views
5

Tôi có hai mảnh Một & B.
tôi đã chuyển đến B từ A sử dụng đoạn mã sau:Màn hình bị đóng băng khi popBackStack() được gọi

FragmentManager fragmentManager; 
    FragmentTransaction transaction; 
    fragmentManager = getActivity().getFragmentManager(); 
    transaction = fragmentManager.beginTransaction(); 
    transaction.setCustomAnimations(R.animator.enter_anim, R.animator.exit_anim,R.animator.popenter, R.animator.popexit); 
    transaction.replace(R.id.fragmentLayout, new B()) 
      .addToBackStack("tag").commit(); 

B chứa các lệnh SQLite (SugarORM).
Khi chuyển từ A sang B, màn hình bị đóng băng, ngay cả khi tôi đang sử dụng AsyncTask & IntentService cho các hoạt động của db.
Ngoài ra, khi tôi nhấn nút quay lại [getFragmentManager().popBackStack();], màn hình bị đóng băng trong vài giây, trước khi màn hình chuyển về A từ B.
Hoạt ảnh popBackStack không hiển thị.
Tôi đã thử hiển thị thanh tiến trình không xác định & danh sách hoạt ảnh trong imageview, nhưng chúng cũng đóng băng quá & có vẻ như chúng là hình ảnh tĩnh.

+1

kiểm tra xem FRAGMENT A của bạn có bất kỳ cuộc gọi chặn ui nào trong onCreateView/onViewCreated hay không. –

+0

đăng AsyncTask của bạn. và bạn có thể xem hoạt ảnh bằng cách tăng độ trễ. – Nepster

+0

đặt nhật ký trong tất cả các phương thức của bạn theo cả hai phân đoạn và bạn có thể tìm hiểu bằng cách kiểm tra nhật ký trong đó có hai quá trình (giữa 2 nhật ký) quá lâu và bạn có thể khắc phục lý do (đặc biệt trong onResume hoặc inPause). dán mã. –

Trả lời

1

Kiểm tra bài viết này trên profiling thread chính của bạn: https://developer.android.com/studio/profile/traceview.html

này sẽ cho bạn thấy những gì đang hogging các chủ đề chính, mà có lẽ là lý do cho sự đóng băng.

Ngoài ra, hãy làm theo lời khuyên của @ NishantPardamwar để kiểm tra các phương pháp vòng đời của đoạn, chạy trên chuỗi chính và có khả năng là thủ phạm.

Các vấn đề liên quan