我尝试编写一个Android服务,它将使用IdHTTP组件向服务器发送消息。 我只是将 IdHTTP1 放在 TAndroidServiceDM 上并尝试在手机上运行应用程序(Android 4.2.2) 我收到错误: “项目 LocSensDemo.apk 引发异常类异常,并显示消息“未找到 Activity ,也许您正在使用服务”” 在 FMX.Platform.Android 第 1792 行“Activity := TAndroidHelper.Activity;” 进而 “项目 LocSensDemo.apk 引发异常类段错误 (11)”。 服务崩溃。
如何解决这个问题?
最佳答案
在服务项目内访问 TAndroidHelper.Activity
属性时,会发生 Activity not find
异常。该属性不可在服务中使用(请参阅 RSP-13381 )。任何在服务中使用 TAndroidHelper.Activity
的内容都会在运行时崩溃。 FMX.Platform.Android
单元中的第 1792 行位于 FMX.Platform.Android.TWindowManager.RetrieveContentRect()
内部。您在使用 TWindowManager
的服务中访问什么?服务没有 UI,您一开始就不应该接触任何与 UI 相关的内容。
如果您的服务代码需要访问 Android Context
对象,例如调用 getContentResolver()
,您可以使用 TAndroidHelper.Context
> 属性,或者您的服务自己的 JavaService
属性(Android 的 Service
类派生自 Context
)。
至于段错误
异常,您没有提供有关该错误的任何详细信息,也没有显示导致该错误的代码,因此这里的任何人都无法为您诊断该错误。
关于android - Delphi RX 中 Android 服务中的 IdHTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133403/