zoukankan      html  css  js  c++  java
  • Android实例-设置消息提醒(XE8+小米2)

    https://www.cnblogs.com/FKdelphi/p/4782124.html

    相关资料:

    1.官网实例:http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial:_Using_the_Notification_Center_(iOS_and_Android)

    结果:

    1.二个按钮可以新建消息提醒,最小化也是新建消息提醒。

    2.程序必须最小化后才能点击消息提醒Label2才会有反映。

    unit Unit1;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Notification, FMX.Controls.Presentation, FMX.StdCtrls,
      FMX.Platform;//需要引入
    
    type
      TForm1 = class(TForm)
        NotificationCenter1: TNotificationCenter;
        Button1: TButton;
        Button2: TButton;
        Label1: TLabel;
        Label2: TLabel;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure NotificationCenter1ReceiveLocalNotification(Sender: TObject;
          ANotification: TNotification);
      private
        flag: Boolean;
        function HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    {$R *.fmx}
    {$R *.NmXhdpiPh.fmx ANDROID}
    
    //延时新建一个消息提醒
    procedure TForm1.Button1Click(Sender: TObject);
    var
      MyNotification: TNotification;
    begin
      //通过消息中心创建消息
      MyNotification := NotificationCenter1.CreateNotification;
      try
        MyNotification.Name := '消息的名称'; //设置消息的名称
        MyNotification.AlertBody := '消息的内容'; //设置消息的内容
        MyNotification.Number := 18;//设置图标标号
        MyNotification.FireDate := Now + EncodeTime(0,0, 10, 0); //设置 10 秒后触发消息
        //将消息提交消息中心,并于指定时间触发
        NotificationCenter1.ScheduleNotification(MyNotification);
        Label2.Text := '';
      finally
        MyNotification.DisposeOf; //释放消息接口
      end;
    end;
    
    //即时新建消息提醒
    procedure TForm1.Button2Click(Sender: TObject);
    var
      MyNotification: TNotification;
    begin
      MyNotification :=NotificationCenter1.CreateNotification; //通过消息中心创建消息
      try
        MyNotification.Name:= '消息的名称'; //设置消息的名称
        MyNotification.AlertBody := '消息的内容'; //设置消息的内容
        MyNotification.Number := 18;//设置图标标号
        MyNotification.EnableSound := True;//有提示音
        NotificationCenter1.PresentNotification(MyNotification);  //将消息提交消息中心
        Label2.Text := '';
      finally
        MyNotification.DisposeOf; //释放消息接口
      end;
    end;
    
    //取消消息提醒
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      NotificationCenter1.CancelNotification('消息的名称');
    end;
    
    //主要是为程序挂接事件
    procedure TForm1.FormCreate(Sender: TObject);
    var
      aFMXApplicationEventService: IFMXApplicationEventService;
    begin
      flag := True;
      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(aFMXApplicationEventService)) then
        aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent)
      else
      flag := False;
    end;
    
    //将要挂接在程序上的事件,此事件是最小化时新建一个消息提醒
    function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent;
      AContext: TObject): Boolean;
    var
      MyNotification: TNotification;
    begin
      if flag = False then
        Exit;
      case AAppEvent of
        TApplicationEvent.aeEnteredBackground://监测,当程序后台运行时执行以下事件
        begin
          //通过消息中心创建消息
          MyNotification := NotificationCenter1.CreateNotification;
          try
            MyNotification.Name :='消息的名称'; //设置消息的名称
            //设置消息的内容
            MyNotification.AlertBody := '消息的内容';
            MyNotification.Number := 18; //设置图标标号
            MyNotification.EnableSound := True;
            NotificationCenter1.PresentNotification(MyNotification); //将消息提交消息中心
            Label2.Text := '';
          finally
            MyNotification.DisposeOf; //释放消息接口
          end;
        end;
      end;
      Result := True;
    end;
    
    //程序最小化后,点消提醒时,发生此事件
    procedure TForm1.NotificationCenter1ReceiveLocalNotification(Sender: TObject;
      ANotification: TNotification);
    begin
      //收到消息后程序的操作
      Label2.Text := '收到' + ANotification.Name + '的消息!';
    end;
    
    end.
    

      

  • 相关阅读:
    [转]Apache与Tomcat的关系
    [转]学习object-c,补习一下指针
    [转]深度解析苹果成功的六大原因——公众类产品学习的榜样
    datetimepicker日期时间选择器
    缓缓回到顶部效果的实现
    bootstrap4实现点击标签展示对应的内容
    禁止页面内容滚动( 禁用 ctrl
    UI中的暗黑模式
    如何通过空状态留住用户
    交互设计常用原则和定律
  • 原文地址:https://www.cnblogs.com/westsoft/p/10193583.html
Copyright © 2011-2022 走看看