Sử dụng lớp ứng dụng
Tùy thuộc vào những gì bạn đang làm trong quá trình khởi tạo của mình, bạn có thể xem xét việc tạo một lớp mới mở rộng Application
và chuyển mã khởi tạo của bạn thành một ghi đèonCreate
phương thức được trong lớp đó.
public class MyApplicationClass extends Application {
@Override
public void onCreate() {
super.onCreate();
// TODO Put your application initialization code here.
}
}
Các onCreate
trong ứng dụng chỉ được gọi khi toàn bộ ứng dụng được tạo, do đó Activity khởi động lại theo hướng hoặc thay đổi mức độ hiển thị của bàn phím sẽ không kích hoạt nó.
Đó là một cách thực hành tốt để hiển thị thể hiện của lớp này dưới dạng một singleton và hiển thị các biến ứng dụng mà bạn đang khởi tạo bằng cách sử dụng getters và setters.
LƯU Ý: Bạn sẽ cần chỉ định tên của lớp Ứng dụng mới của mình trong bảng kê khai để đăng ký và sử dụng:
<application
android:name="com.you.yourapp.MyApplicationClass"
Phản ứng với các thay đổi cấu hình [CẬP NHẬT: điều này không được chấp nhận kể từ API 13; xem đề xuất thay thế ]
Thay vào đó, bạn có thể yêu cầu ứng dụng của mình lắng nghe các sự kiện gây ra khởi động lại - như thay đổi khả năng hiển thị của bàn phím và định hướng - và xử lý chúng trong Hoạt động của bạn.
Bắt đầu bằng cách thêm android:configChanges
nút vào nút tệp kê khai Hoạt động của bạn
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
hoặc cho Android 3.2 (API cấp 13) và mới hơn :
<activity android:name=".MyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name">
Sau đó, trong Hoạt động ghi đè onConfigurationChanged
phương thức và gọi setContentView
để buộc bố cục GUI được thực hiện lại theo hướng mới.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.myLayout);
}