Delphi 10.3.x与Android 10兼容性的问题

用10.3.x编译的android app,在华为android 10上运行,当用返回键退出app或返回后台时,再重新启动(返回)app,卡死,等一会儿,会闪退,然后再重进app才正常。

以前我有遇到类似情况,原因是退出app时还有正在运行的线程,那么就会产生这样的情况:你再重进app,不能正常进入app,卡死了。解决办法就是退出app时,等线程都执行完毕。

今天又遇到这样的情况,但是没查到是那个线程造成这个问题,头大的过程中,在QC上查到有人遇到同样的问题了,原来不是线程的问题,而是与Android 10兼容性的问题,官方正在修正这个问题中,QC地址:https://quality.embarcadero.com/browse/RSP-27806

2020-03-23:

QDAC作者swish大侠给出下面方法:

首先,引用单元:Posix.Signal

然后调用:

kill(getpid,SIGKILL);//没测试.

或者:

kill(0,SIGKILL)

来替换:

Application.Terminate;

测试方法kill(0,SIGKILL)可以!退出时没有异常,重进时不会闪退。在官方没有解决方法前,建议用此方法。

基于ChinaCock组件提供的cc.Comm.App_SendToBack方法,在执行kill前,先执行一下App_SendToBack方法,将应用退回到后台,这样实现了最完美的效果。

大侠就是大侠,一出手便知有没有,再一次感谢!终于堵住客户的嘴了。

原文地址:https://www.cnblogs.com/kinglandsoft/p/12435214.html