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


먼저 상단(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 22598
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21032
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23086
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28892
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30055
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25399
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46352
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182346
483 [XE8] 네이티브 iOS 컨트롤 지원 Humphery 2015.04.13 863
482 [XE8] iOS 64bit 앱개발과 유니버설(armv7 + arm64) 앱개발 [1] Humphery 2015.04.13 1420
481 [XE8] Android 단말기 연결안될때 SDK 확인 및 설치 Humphery 2015.04.11 1995
480 reFind.exe: 마이그레이션 작업에서 수작업을 줄여주는 도구 Humphery 2015.04.09 4100
» 모바일 앱 라이프사이클 이벤트 처리하기 Humphery 2015.04.09 1613
478 모바일 앱 라이프 사이클 이벤트 처리하기(앱 완전 구동 후 실행하기) [1] Humphery 2015.04.09 981
477 웹에서 어플리케이션 구동하기(ActiveX 사용않고) Humphery 2015.04.09 1477
476 iOS 64bit 배포 시 ITMS-90092 오류 대응 [1] file Humphery 2015.04.09 1582
475 [무료 세미나] 초대합니다! RAD Studio XE8 출시 세미나!(서울&대구) 관리자 2015.04.08 3735
474 [FireDAC Skill Sprints] 8. TFDMemTable: 메모리 기반 데이터셋 사용하기 Humphery 2015.04.06 2697
473 [FireDAC Skill Sprints] 9. LocalSQL: DB에서 가져온 데이터(데이터셋)를 대상으로 다시 SQL쿼리 실행하기 Humphery 2015.04.01 2038
472 [FireDAC Skill Sprints] 7. FireDAC ETL: 데이터 내보내기, 가져오기 기능 구현하기 Humphery 2015.04.01 2195
471 [FireDAC Skill Sprints] 1. FireDAC 소개 험프리 2015.04.01 1640
470 [다음 버전 정보] 비콘(Beacon)으로 접근감지하기 Humphery 2015.03.26 2827
469 "모바일 앱" 개발 또는 유지관리, 데브기어와 해결하세요! file 관리자 2015.03.26 12811
468 최신 업데이트와 패치정보 확인하는 방법 file Humphery 2015.03.26 910
467 이 달의 기술자료 - 2015년 04월 험프리 2015.03.26 5725
466 [다음 버전 정보] iOS 용 64비트 앱 만들고 배포하기 file Humphery 2015.03.25 1114
465 [따라하기] FireDAC으로 오라클(Oracle) DB와 연결하기 험프리 2015.03.24 3170
464 아이들이 재미있어 할만한 델파이(파이어몽키) 프로젝트 동영상 따라하기 Humphery 2015.03.24 1196