用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方法,將應用退回到后台,這樣實現了最完美的效果。
大俠就是大俠,一出手便知有沒有,再一次感謝!終於堵住客戶的嘴了。