【发布时间】:2016-03-10 02:44:36
【问题描述】:
我正在使用 Delphi DX Seattle 并在 Android 设备上进行测试
当用户单击按钮时,我正在创建多个预定通知
当用户点击另一个按钮时,我会清除剩余的通知
在一个通知触发后,我似乎无法让 TNotificationCenter.CancelAll 实际取消通知
Similar Question Here
使用 Delphi 示例 SendCancelNotification 作为基本代码
我将“立即发送通知”按钮更改为“发送多个通知”,代码如下所示
procedure TNotificationsForm.btnSendMultipleNotificationsClick(
Sender: TObject);
procedure MyNotificationCreate(aNotificationName : String; aSecondDelay : Word);
var
Notification: TNotification;
begin
if (aSecondDelay < 0) or (aSecondDelay > 60) then
raise Exception.Create('Seconds must be between 0 and 60');
{ verify if the service is actually supported }
Notification := NotificationC.CreateNotification;
try
Notification.Name := aNotificationName;
Notification.AlertBody := aNotificationName + ' ran after ' + inttostr(aSecondDelay) + ' seconds';
{ Fired in 10 second }
Notification.FireDate := Now + EncodeTime(0,0,aSecondDelay,0);
{ Send notification in Notification Center }
NotificationC.ScheduleNotification(Notification);
finally
Notification.DisposeOf;
end;
end;
begin
MyNotificationCreate('First' , 5);
MyNotificationCreate('Second', 10);
MyNotificationCreate('Third' , 15);
end;
这会在单击按钮后发送三个通知。
如果我单击“发送多个通知”按钮,然后在 5 秒前单击“取消所有通知”按钮,则通知已成功取消。
procedure TNotificationsForm.SpeedButton2Click(Sender: TObject);
begin
NotificationC.CancelAll;
end;
但是如果我单击多通知按钮并等到第一个通知触发然后单击“取消所有通知”按钮,它不会取消剩余的通知。例如通知 Second 和 Third 仍在运行。
有人遇到过这个吗?或对发送通知之一后 CancelAll 事件为何不起作用有任何想法
【问题讨论】:
标签: android delphi notifications firemonkey