애플리케이션 이벤트핸들러를 등록하면 앱의 라이프 사이클 이벤트를 수신할 수 있습니다.


먼저 상단(interface) uses절에 FMX.Platform을 추가 후 이벤트 수신 용 이벤트를 아래와 같이 작성합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function TForm1.AppEventHandler(AAppEvent: TApplicationEvent;
  AContext: TObject): Boolean;
begin
  Result := False;
  case AAppEvent of
    TApplicationEvent.FinishedLaunching: Log.d('FinishedLaunching');
    TApplicationEvent.BecameActive: Log.d('BecameActive');
    TApplicationEvent.WillBecomeInactive: Log.d('WillBecomeInactive');
    TApplicationEvent.EnteredBackground: Log.d('EnteredBackground');
    TApplicationEvent.WillBecomeForeground: Log.d('WillBecomeForeground');
    TApplicationEvent.WillTerminate: Log.d('WillTerminate');
    TApplicationEvent.LowMemory: Log.d('LowMemory');
    TApplicationEvent.TimeChange: Log.d('TimeChange');
    TApplicationEvent.OpenURL: Log.d('OpenURL');
  end;
end;

메인 폼 생성 시 이벤트 핸들러를 등록(SetApplicationEventHandler)합니다.

1
2
3
4
5
6
7
8
9
procedure TForm1.FormCreate(Sender: TObject);
var
  AEService: IFMXApplicationEventService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AEService)) then
  begin
    AEService.SetApplicationEventHandler(AppEventHandler);
  end;
end;

아래 이벤트를 참고해 필요한 항목에 이벤트 발생 시 코드를 추가하세요.


애플리케이션 이벤트 플랫폼 별 지원 여부

 이벤트

 설명

 안드로이드 지원

 iOS 지원

 BecomeActive

 애플리케이션이 활성화 되었습니다.

 지원

 지원 

 EnteredBackground

 애플리케이션이 백그라운드로 진입했습니다.

 지원

 지원

 FinishedLaunching

 애플리케이션이 시작되었습니다.

 지원

 지원

 LowMemory

 디바이스 메모리가 부족하다는 경고입니다. 내부 메모리 사용량을 줄이세요.

 지원

 지원

 OpenURL

 url 요청을 받았습니다.

 X

 지원

 TimeChange

 시간에 큰 변화가 발생. 하루가 바뀐 경ㅇ나 서머타임이 시작 또는 끝난 경우 발생

 X

 지원

 WillBecomeForeground

 백그라운드의 애플리케이션이 활성화 되었습니다.

 지원

 지원

 WillBecomeInactive

 다른 애플리케이션이 활성화 되었습니다.

 지원

 지원

 WillTerminate

 사용자가 애플리케이션을 종료합니다.

 지원

 지원


안드로이드 라이프사이크

http://developer.android.com/reference/android/app/Activity.html


iOS 라이프사이크


https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html


참고 글

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 21686
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20306
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22352
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28102
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29403
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 24726
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 45675
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181226
74 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 84318
73 다중 클라이언트를 위한 DataSnap 서버 만들기 관리자 2011.12.22 16164
72 델파이 XE2 로 아이폰 하드웨어 컨트롤 하기 박병일 2012.01.19 15522
71 dbExpress 의 SQLConnection 에서 트랜젝션 처리하기 박병일 2012.02.08 14001
70 델파이 XE2로 만든 아이폰 앱 - TicTacToe file 박병일 2012.01.17 14001
69 델파이 XE2의 DataSnap 서버와 OSX Client의 연동 박병일 2012.01.19 13583
68 델파이 XE2로 아이폰앱 만들기 박병일 2012.01.18 13075
67 Delphi XE2에서 맥 애플리케이션을 만들어 보자 박병일 2012.01.18 13067
66 델파이 XE2 DataSnap Client 만들기 [1] 관리자 2011.12.22 12949
65 웹상의 이미지를 폼(TImage)에서 사용하는 방법 [3] file Humphery 2013.12.14 11900
64 [델파이 문법] 클래스와 객체 #1 file 관리자 2012.04.12 10897
63 OAuth 2.0 연동 - 카카오 API(카카오톡 프로필) [9] 험프리 2018.12.26 10252
62 파이어 몽키 이퀼라이저 데모 동영상 박병일 2012.02.06 10086
61 델파이 XE2의 Namespace 문제 박병일 2012.01.19 8712
60 Runtime Packages 옵션으로 프로그램(배포) 용량 줄이기 [4] file Humphery 2013.12.19 7858
59 델파이 XE2로 만든 아이폰용 Datasnap Client 관리자 2011.12.22 7306
58 [REST API][실습] REST API 클라이언트 개발하기(REST Client 이용) [2] 험프리 2017.05.23 7301
57 델파이에서 사용하는 각 Stream(스트림) 정리 김원경 2017.01.04 7044
56 [REST API] 다음 Kakao > 로컬 > 주소검색 연동하기 [2] 험프리 2017.09.18 6460
55 파이어몽키 모바일에서 사용자 파일 배포 및 사용 file 험프리 2013.12.27 6294