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

    相关资料:

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

    结果:

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

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

    实例代码:

      1 unit Unit1;
      2 
      3 interface
      4 
      5 uses
      6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      8   FMX.Notification, FMX.Controls.Presentation, FMX.StdCtrls,
      9   FMX.Platform;//需要引入
     10 
     11 type
     12   TForm1 = class(TForm)
     13     NotificationCenter1: TNotificationCenter;
     14     Button1: TButton;
     15     Button2: TButton;
     16     Label1: TLabel;
     17     Label2: TLabel;
     18     Button3: TButton;
     19     procedure Button1Click(Sender: TObject);
     20     procedure Button2Click(Sender: TObject);
     21     procedure Button3Click(Sender: TObject);
     22     procedure FormCreate(Sender: TObject);
     23     procedure NotificationCenter1ReceiveLocalNotification(Sender: TObject;
     24       ANotification: TNotification);
     25   private
     26     flag: Boolean;
     27     function HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
     28     { Private declarations }
     29   public
     30     { Public declarations }
     31   end;
     32 
     33 var
     34   Form1: TForm1;
     35 
     36 implementation
     37 {$R *.fmx}
     38 {$R *.NmXhdpiPh.fmx ANDROID}
     39 
     40 //延时新建一个消息提醒
     41 procedure TForm1.Button1Click(Sender: TObject);
     42 var
     43   MyNotification: TNotification;
     44 begin
     45   //通过消息中心创建消息
     46   MyNotification := NotificationCenter1.CreateNotification;
     47   try
     48     MyNotification.Name := '消息的名称'; //设置消息的名称
     49     MyNotification.AlertBody := '消息的内容'; //设置消息的内容
     50     MyNotification.Number := 18;//设置图标标号
     51     MyNotification.FireDate := Now + EncodeTime(0,0, 10, 0); //设置 10 秒后触发消息
     52     //将消息提交消息中心,并于指定时间触发
     53     NotificationCenter1.ScheduleNotification(MyNotification);
     54     Label2.Text := '';
     55   finally
     56     MyNotification.DisposeOf; //释放消息接口
     57   end;
     58 end;
     59 
     60 //即时新建消息提醒
     61 procedure TForm1.Button2Click(Sender: TObject);
     62 var
     63   MyNotification: TNotification;
     64 begin
     65   MyNotification :=NotificationCenter1.CreateNotification; //通过消息中心创建消息
     66   try
     67     MyNotification.Name:= '消息的名称'; //设置消息的名称
     68     MyNotification.AlertBody := '消息的内容'; //设置消息的内容
     69     MyNotification.Number := 18;//设置图标标号
     70     MyNotification.EnableSound := True;//有提示音
     71     NotificationCenter1.PresentNotification(MyNotification);  //将消息提交消息中心
     72     Label2.Text := '';
     73   finally
     74     MyNotification.DisposeOf; //释放消息接口
     75   end;
     76 end;
     77 
     78 //取消消息提醒
     79 procedure TForm1.Button3Click(Sender: TObject);
     80 begin
     81   NotificationCenter1.CancelNotification('消息的名称');
     82 end;
     83 
     84 //主要是为程序挂接事件
     85 procedure TForm1.FormCreate(Sender: TObject);
     86 var
     87   aFMXApplicationEventService: IFMXApplicationEventService;
     88 begin
     89   flag := True;
     90   if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(aFMXApplicationEventService)) then
     91     aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent)
     92   else
     93   flag := False;
     94 end;
     95 
     96 //将要挂接在程序上的事件,此事件是最小化时新建一个消息提醒
     97 function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent;
     98   AContext: TObject): Boolean;
     99 var
    100   MyNotification: TNotification;
    101 begin
    102   if flag = False then
    103     Exit;
    104   case AAppEvent of
    105     TApplicationEvent.aeEnteredBackground://监测,当程序后台运行时执行以下事件
    106     begin
    107       //通过消息中心创建消息
    108       MyNotification := NotificationCenter1.CreateNotification;
    109       try
    110         MyNotification.Name :='消息的名称'; //设置消息的名称
    111         //设置消息的内容
    112         MyNotification.AlertBody := '消息的内容';
    113         MyNotification.Number := 18; //设置图标标号
    114         MyNotification.EnableSound := True;
    115         NotificationCenter1.PresentNotification(MyNotification); //将消息提交消息中心
    116         Label2.Text := '';
    117       finally
    118         MyNotification.DisposeOf; //释放消息接口
    119       end;
    120     end;
    121   end;
    122   Result := True;
    123 end;
    124 
    125 //程序最小化后,点消提醒时,发生此事件
    126 procedure TForm1.NotificationCenter1ReceiveLocalNotification(Sender: TObject;
    127   ANotification: TNotification);
    128 begin
    129   //收到消息后程序的操作
    130   Label2.Text := '收到' + ANotification.Name + '的消息!';
    131 end;
    132 
    133 end.
  • 相关阅读:
    线程池
    非XA式Spring分布式事务
    好的架构不是设计出来的,而是演进出来的
    缓存穿透
    【转】MySQL数据库主从同步管理
    setup 桌面化设置网卡
    gitlab web登入密码忘记以后可以用如下方式修改密码
    kvm与selinux
    linux下跳板机跟客户端之间无密码登陆
    LINUX下安装TeamViewer
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/4782124.html
Copyright © 2011-2022 走看看