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" />
그리고 나서 앱을 빌드 하시면 정상적으로 앱 강제 종료시 서비스도 같이 종료되어
서비스 재시작이 안되는것을 방지 할 수 있습니다
아래의 스마트폰 화면 보시면 앱 강제종료 할 시 토스트 알람이 안내 해주는것을 볼 수 있습니다.
'FireMonkey 예제 자료' 카테고리의 다른 글
파이어몽키 안드로이드 지정된 폴더에 파일 목록 불러오기 (0) | 2022.01.18 |
---|---|
안드로이드 DrawLine 깨짐 발생시 간단 해결방법 (0) | 2022.01.18 |
파이어몽키 java to pas 및 자바 시그니처 주소 참고용 (0) | 2022.01.18 |
FireMonkey java class patch and jar patch 패치 하기 (0) | 2022.01.14 |
FireMonkey Floating(플로팅) 안드로이드 가사 위젯 jar 파일 업로드 (0) | 2022.01.08 |
파이어몽키[Window,Android] 이미지 리스트 비트맵 추가할수 있게 하는 코드 (0) | 2022.01.05 |
Floating KMS 가사 위젯 java 코드 정리 해드렸습니다 (0) | 2022.01.05 |
java 코드에 리소스 id 얻어오기 (0) | 2022.01.03 |
댓글