zoukankan      html  css  js  c++  java
  • Firemonkey里触发home按键被按下的事件

    吾八哥我最近在使用Delphi里的Firemonkey平台写一个叫“由由密码管家”的APP工具,是跨多平台的,如ios/android/windows/macOs。由于是用于密码管理的,那么在手机里操作会很频繁的被按下home键而切换到后台的,所以希望程序被按下home键的时候隐藏到后台就自动锁定程序,再激活APP的时候要求重新输入密码才可以操作。那么问题来了,在Firemonkey里面如何捕获按下home键的事件呢?网上搜索各种资料,终于找到了答案,这里分享出来具体的解决方法:

    function TMaster.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
    begin
      case AAppEvent of
        TApplicationEvent.FinishedLaunching:
          ;
        TApplicationEvent.BecameActive:
          ;
        TApplicationEvent.WillBecomeInactive:
          begin
            if not Assigned(LoginFrame) then
              ShowFrame(TLoginFrame, Master, False);
            LoginFrame.BringToFront;
          end;
        TApplicationEvent.EnteredBackground:
          ;
        TApplicationEvent.WillBecomeForeground:
          ;
        TApplicationEvent.WillTerminate:
          ;
        TApplicationEvent.LowMemory:
          ;
        TApplicationEvent.TimeChange:
          ;
        TApplicationEvent.OpenURL:
          ;
      end;
      Result := True;
    end;

    当然,在使用前需要在 onCreate 中获取消息接口

    使用IFMXApplicationEventService接口里的SetApplicationEventHandler方法将上述事件方法作为参数进行调用即可实现,HandleAppEvent方法里会触发各种程序相关的事件通知。代码如下:

    var
      SvcEvents: IFMXApplicationEventService;
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(SvcEvents)) then
      begin
        SvcEvents.SetApplicationEventHandler(HandleAppEvent);
      end;
    end;
  • 相关阅读:
    出栈序列的可能性判定
    阿里离线数据处理平台2013暑期学校
    终于算完了这道『1+1』
    数据结构学习笔记之一 链表
    经典解释监视器和对象锁
    Sybase中字符串替换函数 STR REPLACE
    使用Arrays sort 方法進行排序
    clustered和nonclustered索引的区别
    Java序列化的作用和反序列化
    Java多线程下载并具断点续传功能JAR
  • 原文地址:https://www.cnblogs.com/westsoft/p/8413811.html
Copyright © 2011-2022 走看看