博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实例-设置消息提醒(XE8+小米2)
阅读量:5966 次
发布时间:2019-06-19

本文共 4219 字,大约阅读时间需要 14 分钟。

 

相关资料:

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 var100 MyNotification: TNotification;101 begin102 if flag = False then103 Exit;104 case AAppEvent of105 TApplicationEvent.aeEnteredBackground://监测,当程序后台运行时执行以下事件106 begin107 //通过消息中心创建消息108 MyNotification := NotificationCenter1.CreateNotification;109 try110 MyNotification.Name :='消息的名称'; //设置消息的名称111 //设置消息的内容112 MyNotification.AlertBody := '消息的内容';113 MyNotification.Number := 18; //设置图标标号114 MyNotification.EnableSound := True;115 NotificationCenter1.PresentNotification(MyNotification); //将消息提交消息中心116 Label2.Text := '';117 finally118 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 begin129 //收到消息后程序的操作130 Label2.Text := '收到' + ANotification.Name + '的消息!';131 end;132 133 end.

 

转载地址:http://clvax.baihongyu.com/

你可能感兴趣的文章
linux下限制ip访问
查看>>
linux添加环境变量
查看>>
Dumpsys Input Diagnostics
查看>>
ASP.NET MVC 入门8、ModelState与数据验证
查看>>
linux进程调度之 FIFO 和 RR 调度策略---SYSTEMTAP
查看>>
JSTL的相关使用
查看>>
ActiveMQ, RabbitMQ和ZeroMQ 选型关注点
查看>>
王垠:完全用Linux工作
查看>>
Understanding the Router
查看>>
红米3 Flyme5.1.9.5插桩适配长期不定时更新
查看>>
MySQL 5.6 for Windows 解压缩版配置安装(转)
查看>>
组件居中显示 安卓
查看>>
delete
查看>>
sql server生成不重复的时间字符串
查看>>
DataBase 之 数据库设计六大范式
查看>>
比特币钱包安全
查看>>
Lucene就是这么简单
查看>>
2015年第6届蓝桥杯Java B组省赛试题解析
查看>>
一个有味道的函数
查看>>
zookeeper在linux环境安装
查看>>