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


먼저 상단(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 21687
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20307
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22353
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28102
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29403
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 24728
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 45675
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181226
843 Ext JS 활용과 앞으로의 방향 관리자 2018.05.24 1345
842 C++과 파이어몽키로 멋진 UI 완성하기 관리자 2018.05.21 1191
841 C++빌더와 델파이를 이용한 SHA 해시 file 김원경 2018.05.21 1680
840 [고객사례-브라우저, 델파이] BriskBard 관리자 2018.05.10 820
839 C++에서 LINQ 사용 file 험프리 2018.05.09 1475
838 델파이로 3D 크레딧 스크롤 구현하기(소스제공) file 험프리 2018.05.09 778
837 [업데이트][패치][10.2.3] RAD 스튜디오 - iOS 11.3 패치 험프리 2018.05.09 459
836 패키지 개발방식과 DLL개발방식의 차이와 장단점 김원경 2018.05.02 2107
835 이 달의 기술자료 - 2018년 05월 file 험프리 2018.04.27 449
834 10.2.3 새로운 기능: 파이어몽키 UI 템플릿 - 프로필 화면 관리자 2018.04.24 776
833 센차 ExtJS 웹 클라이언트 + RAD서버 10.2.3 관리자 2018.04.24 1499
832 [업데이트][패치][10.2.3] RAD스튜디오 10.2.3 패치와 새로운 기술 정보들 관리자 2018.04.24 740
831 [고객사례-비콘, 위치 추적, RAD스튜디오, RAD서버] BEAM 관리자 2018.04.18 849
830 이 달의 기술자료 - 2018년 04월 file 험프리 2018.03.30 546
829 [10.2 도쿄][릴리즈3] RAD서버에서 센차 Ext JS 지원 확장 관리자 2018.03.30 573
828 [10.2 도쿄][릴리즈3] C++빌더 리네임 리팩토링 지원 관리자 2018.03.30 408
827 [10.2 도쿄][릴리즈3] 파이어몽키 UI 템플릿 관리자 2018.03.30 684
826 [10.2 도쿄][릴리즈3] CMake 커맨드 라인 지원 관리자 2018.03.30 419
825 [고객사례-위치확인, 배터리 문제 해결, 모바일, 델파이] WhereontheMap [1] 관리자 2018.03.29 587
824 [발표자료] 20180315 마이그레이션, 생각보다 더 쉽습니다 (C++빌더, 델파이) file 관리자 2018.03.19 933