Saturday, December 29, 2018

Không cho thoát ứng dụng


Có những ứng dụng cần chạy liên tục để thực hiện một tác vụ nào đó, ta cần giữ nó không bị thoát. Ta có thể dùng onStop để mở lại ngay khi bị thoát.
@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);
  }
Hoặc ta tạo một hàm kiểm tra như sau.
public static boolean isRunning(Context context) {
 ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
 for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if(activity.class.getName().equals(service.service.getClassName())){
       return true;
      }
  }
   return false;
} 
Thêm đoạn code sau vào trên ngoặc đóng cuối cùng.
boolean chay=true;
@Override
    public void onWindowFocusChanged(boolean hasFocus) {
         super.onWindowFocusChanged(hasFocus);
         if (!hasFocus) {
             chay=isRunning(this);
             if(chay==false){
              finish();
         Intent i=new Intent(this,activity.class);
            startActivity(i);
            chay=true;

        } 
Bây giờ mỗi khi bị thoát, ứng dụng sẽ tự mở lại.

No comments:

Post a Comment