FireMonkey 예제 자료

java 최근에 실행된 앱 보기에서 앱 지울시 종료하기

kimsyo11 2022. 1. 9. 05:00
728x90

Android Service에서는 뒤로가기나 홈버튼 누를시 java소스에 public void onDestroy() 이벤트가 발생할수 있습니다

그러나 앱 강제종료시 onDestroy()로 안 넘어가게 되니 아래의 방법대로 하면 해결 할 수 있습니다

 

Service 클래스에는 Task가 종료되었을 때 콜백을 받는 onTaskRemoved()메서드가 존재합니다

이 메서드를 이용해 Task의 종료시점을 잡을 수 있습니다 사용하기 위해서는 우선

java에서 소스 내용을 넣어줍니다

 

아래의 소스에서 class 부분에 KMSLyricService는 원하는 영어로 바꿔주셔도 됩니다

그후에 package와 서비스 이름으로 안드로이드 서비스 실행해주시면 됩니다

java소스로 프로그래밍 하여 jar파일로 만드시거나 또는 기존 파이어몽키 프로젝트 폴더의

classes.dex 파일에 생성한 jar와 파일 병합 시켜주셔도 되며 또는 파이어몽키

안드로이드 라이브러리에 jar파일을 추가하면 보통 자동으로 classes.dex에 알아서 자동 병합하게 됩니다

그러나 앱 실행시 오류가 발생하신다면 수동으로 classes.dex를 병합 시켜보시길 바랍니다

 


public class KMSLyricService extends Service {	 
@Override
    public void onTaskRemoved(Intent rootIntent) { //핸들링 부분
		Toast.makeText(this, "KMSPack 강제종료 감지", Toast.LENGTH_SHORT).show();
        stopSelf(); //서비스 종료
    }
}

 

 


그 후에 매니페스트에 등록을 해주셔야 합니다

아래의 android:stopWithTask="false"에서 false를 해주셔야 java 서비스에서 onTaaskRemoved()가 동작하게 됩니다

 

만약 앱이 종료되어 서비스 유지가 되고 싶다면 false를 넣어 주는것은 안되며 유지하고 싶으시다면

 

java소스에 public void onTaskRemoved(Intent rootIntent) 안 넣으시면 됩니다.

 

<service android:stopWithTask="false" android:exported="false" android:enabled="true" android:name="com.KMSLyric.KMSLyricService" />

 

그리고 나서 앱을 빌드 하시면 정상적으로 앱 강제 종료시 서비스도 같이 종료되어

서비스 재시작이 안되는것을 방지 할 수 있습니다

 

아래의 스마트폰 화면 보시면 앱 강제종료 할 시 토스트 알람이 안내 해주는것을 볼 수 있습니다.

 

728x90