Tôi cần áp dụng các bố cục khác nhau để định hướng dọc và ngang cho hoạt động của mình. Bên cạnh đó, tôi cần phải cảnh báo nếu định hướng là chân dung.Xử lý hoạt động xoay trong Android
Tôi đã chỉ định android:configChanges="orientation|keyboardHidden"
trong AndroidManifest. Tôi cũng ghi đè phương pháp onConfigurationChanged như thế này:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d("tag", "config changed");
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT)
Log.d("tag", "Portrait");
else if (orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.d("tag", "Landscape");
else
Log.w("tag", "other: " + orientation);
....
}
Trong khi quay từ phong cảnh đến log chân dung trông giống như:
config changed
Portrait
Nhưng khi thay đổi từ dọc sang ngang có vẻ như
config changed
Portrait
config changed
Landscape
Tại sao onConfigurationChanged được gọi hai lần? Làm thế nào tôi có thể tránh nó?
Tại sao onConfigurationChanged() là cách xấu? Bạn có thể vui lòng cho tôi một liên kết với lời giải thích? Nếu tôi sẽ sử dụng onCreate() hoặc một cái gì đó tương tự như hoạt động sẽ được tạo lại và dữ liệu của nó sẽ bị mất. – darja