Saturday, December 29, 2018

Mở lại ứng dụng khi ấn nút Back


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