2010-03-19 25 views
5

Tôi muốn thực hiện một hoạt động cho phép thay đổi định hướng trên một số điều kiện, nhưng không phải khác. Chính xác hơn tôi muốn ngăn chặn khởi động lại hoạt động khi một luồng nền đang bận.Khởi động lại có điều kiện trên Hoạt động trênĐịnh cấu hìnhThay đổi

Tôi đã đặt thuộc tính configChanges trên tệp kê khai hoạt động và onConfigurationChanged được gọi khi định hướng thay đổi. Tuy nhiên, tôi muốn cho phép ứng dụng thay đổi hướng khi được phép.

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (orientationChangeAllowed) { 
     // how do I restart this activity? 
    } else { 
     // don't do anything 
    } 
} 

Trả lời

7

nếu được phép gọi setRequestedOrientation(), khi không được phép, không làm gì cả.

Mẹo: Bạn có thể sử dụng onRetainNonConfigurationInstance()getLastNonConfigurationInstance() và trả lại (đối tượng có chứa) AsyncThread. Bằng cách này, Activity sẽ thay đổi hướng khi người dùng muốn. Lưu ý rằng: Bạn không nên để lộ tham chiếu đến số Context (có thể là tham chiếu đến số Activity hoặc Drawable, ...) của bạn.

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