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