Android onSavedInstance() method

Posted: 01/04/2013 in Android
Thẻ:

Khi activity đang chạy mà có cuộc gọi đến hoặc xoay màn hình hoặc xoay emulator Android ( CTRL + F11) thì activity bị onDestroy() và onCreate().
Lúc này ta cần handle method onSaveInstanceState() để lưu giữ lại giá tri muốn lưu trước khi màn hình bị xoay.

Một ví dụ điển hình ở đây là khi một Activity chạy với một Progress chẳng hạn, đang chạy tới 50% thì bị xoay màn hình
như vậy activity sẽ destroy và onCreate() trở lại, ta phải lưu giữ giá trị progress này để tiếp tục cập nhật progress từ 50

int progress ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if( savedInstanceState != null ) {
progress = savedInstanceState.getInt(“progress”);
//Do something to continue here;
}
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(“progress”, progress);
}

 

Ngoài ra , để đơn giản ko cần ta phải kiểm tra trạng thái có được lưu ko trong hàm onCreate mà ta chỉ cần override lại hàm sau :

@Override
public void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
progress = state.getInt(“progress”));
}

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s