Bình thường nếu ta không làm gì, ấn nút back sẽ khiến màn hình hiện tại bị thoát. Nếu ta muốn vô hiệu hóa nút back, ta dùng dòng sau.
@Override
public void onBackPressed()
{
Chú ý là bên trong không có dòng super.onBackPressed();
Cách này sẽ khiến nút back bị trơ, không có phản ứng gì, nếu người dùng đang ở trong màn hình application, bình thường ấn nút back sẽ quay về màn hình home, nếu bị vô hiệu hóa, sẽ phải ấn nút home mới quay về được.
Ta muốn ứng dụng không bị thoát khi ấn nút back, và vẫn quay lại màn hình home được, ta làm như sau.
Thêm các dòng sau vào trong lệnh onBackPressed()
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startMain.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startMain.putExtra("ID_TimeLeft", String.valueOf(0));
startActivity(startMain);
finish();
Thêm
đoạn lệnh sau vào trên ngoặc đóng cuối cùng.
@Override
public void onStop() {
super.onStop();
Intent i=new Intent(this,MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
i.putExtra("ID_TimeLeft",String.valueOf(0));
startActivity(i);
}
Tức là ta mở lại class Main ngay khi thoát nó, đồng thời trở về
màn hình home.
No comments:
Post a Comment