Delphi 为什么不从Android RTL调用DoneApplication?

Delphi 为什么不从Android RTL调用DoneApplication?,delphi,firemonkey,delphi-xe8,Delphi,Firemonkey,Delphi Xe8,在TApplication.Run的实现中,有以下内容: {$IFNDEF ANDROID} AddExitProc(DoneApplication); {$ENDIF} 这意味着,DoneApplication永远不会在Android上执行 Android和所有其他FireMonkey目标之间出现这种差异的原因是什么?在XE7的VCL中,它是{$IF NOT DEFINED(CLR)}。在这种情况下,对DontApplication的调用将在TApplication.ProcessMes

TApplication.Run
的实现中,有以下内容:

{$IFNDEF ANDROID}
  AddExitProc(DoneApplication);
{$ENDIF}
这意味着,
DoneApplication
永远不会在Android上执行


Android和所有其他FireMonkey目标之间出现这种差异的原因是什么?

在XE7的VCL中,它是
{$IF NOT DEFINED(CLR)}
。在这种情况下,对
DontApplication
的调用将在
TApplication.ProcessMessages
中处理。只是在火上多加些木柴。也许它应该以同样的方式处理,并作为疏忽被排除在
ProcessMessages
之外。Delphi中的移动平台使用ARC,所以我猜他们在移植代码时保持了这种方式。你问的一个大问题是android有什么特别之处。如果是因为ARC,他们为什么不放一些类似于
{$IFDEF AUTOREFCOUNT}
的东西呢。