You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi Android服务添加FMX.Types声明及使用TTimer时崩溃问题咨询

Delphi Android服务相关问题解答

1. 为什么Android服务中不能添加FMX.Types声明?

FMX.Types是FireMonkey跨平台UI框架的核心基础单元,该单元的初始化段代码会自动尝试加载FMX UI运行时环境,依赖安卓端的Activity UI上下文、UI线程消息循环两个必须的运行资源。

安卓服务属于无UI组件,运行时没有关联任何Activity实例,也不会初始化FMX所需的UI消息循环。只要服务单元的uses列表引入了FMX.Types,不管你有没有实际使用该单元内的组件,单元初始化逻辑都会自动执行,最终因为找不到依赖的UI资源触发异常,导致进程崩溃。

2. Android服务中是否无法使用TTimer组件?

并非完全不能使用定时能力,仅不能使用FMX框架下的TTimer组件:FMX封装的TTimer依赖FMX UI消息循环派发定时事件,服务中没有对应运行环境,直接使用会触发和引入FMX.Types一致的崩溃问题。

你可以选择以下不依赖FMX的定时实现方案:

  • 创建独立TThread工作线程,配合Sleep方法实现定时触发逻辑
  • 调用安卓原生API实现系统级定时:比如使用Handler.postDelayed或者AlarmManager
  • 使用Delphi跨平台运行时的非UI定时能力:比如System.Threading.TTask配合TTimeSpan实现异步定时任务

内容的提问来源于stack exchange,提问作者Pedro Luque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:39:00