17

Tôi có một hoạt động không nên được tạo lại sau khi thay đổi hướng. Tôi đã thêm phần sau vào khai báo hoạt động trong tệp kê khai:Thay đổi hướng trong Honeycomb

android:configChanges="orientation" 

Trên Android 2.3 hoạt động này hoàn hảo. Trên HONEYCOMB_MR2onCreate được gọi là bất cứ khi nào thay đổi hướng.

Có điều gì khác cần được thực hiện trên HONEYCOMB_MR2 để tránh tái tạo hoạt động sau khi thay đổi định hướng không?

+0

Bạn đã thử 'android: configChanges =" keyboardHidden | orientation "'? Tôi sẽ không mong đợi rằng để tạo sự khác biệt, nhưng nó đáng để thử. – CommonsWare

+0

@CommonsWare Nó không, nhưng cố gắng tất cả các giá trị có thể tôi tìm thấy một trong đó hoạt động. Xem câu trả lời của tôi. – hpique

Trả lời

37

Rõ ràng sử dụng orientation|screenSize (?) Ngăn chặn onCreate trên Honeycomb và (cho đến nay) dường như không làm bất cứ điều gì trong các phiên bản Android trước đó.

android:configChanges="orientation|screenSize" 

Không biết tại sao điều này là cần thiết và tôi thực sự không hiểu số documentation về giá trị mới này.

Tôi nghi ngờ rằng trong HONEYCOMB_MR2 khi thay đổi định hướng, hoạt động coi đây là hai thay đổi cấu hình: hướng và kích thước màn hình. Và cả hai cố gắng tạo lại hoạt động theo mặc định.

+0

Vâng, đó là những tính năng mới. Giá trị 'android: targetSdkVersion' của bạn là gì? – CommonsWare

+0

android: targetSdkVersion = "13" – hpique

+2

OK, tốt, điều đó sẽ kích hoạt những gì tài liệu nói. Điều này phải liên quan đến các vòng loại bộ tài nguyên mới: http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html Về cơ bản, vì chúng đã mở rộng nhỏ/bình thường trước đây/large/xlarge và các công cụ cổng/đất để bao gồm các bộ tài nguyên dựa trên các tham số, chúng sẽ xem xét các thay đổi trong các thứ nguyên đó để thay đổi cấu hình. Có thể tưởng tượng, có thể có các thiết bị mà các thứ nguyên đó thay đổi không theo định hướng (ví dụ: các thiết bị màn hình kép có bật/tắt màn hình thứ hai). – CommonsWare

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