3

我试图从“Androidapi.JNI.App.pas”(TJservice)扩展一个类/接口,我需要扩展这个类来提供服务。可能吗?如何?

java/android服务的一些例子

我需要覆盖这样的方法:oncreate、onbind、ondestroy。但我不知道怎么做。

我试过这样的事情:

 type Tandroidservice= class(TJService)
  function onBind(intent: JIntent): JIBinder; override;
  procedure onCreate; override;
  procedure onDestroy; override;
  procedure onStart(intent: JIntent; startId: Integer); override;
 end;

出现此错误:

[DCC Error] Unit1.pas(13): E2137 Method 'onBind' not found in base class
[DCC Error] Unit1.pas(14): E2137 Method 'onCreate' not found in base class
[DCC Error] Unit1.pas(15): E2137 Method 'onDestroy' not found in base class
[DCC Error] Unit1.pas(16): E2137 Method 'onStart' not found in base class
[DCC Error] Unit1.pas(13): E2065 Unsatisfied forward or external declaration: 'Tandroidservice.onBind'
[DCC Error] Unit1.pas(14): E2065 Unsatisfied forward or external declaration: 'Tandroidservice.onCreate'
[DCC Error] Unit1.pas(15): E2065 Unsatisfied forward or external declaration: 'Tandroidservice.onDestroy'
[DCC Error] Unit1.pas(16): E2065 Unsatisfied forward or external declaration: 'Tandroidservice.onStart'
4

1 回答 1

6

您当前唯一的选择是从 Java 类继承,然后使用 JNI 调用 Delphi 并执行线程切换到 FMX 线程。

我的 CodeRage 8 会议(截至撰写本文时的下周)展示了如何通过一项活动来做到这一点。过程大致相同。

现在这对您没有帮助,除了知道您不能直接在 Delphi 中从 Delphi for Android 中的 Java 类继承,尽管在 Delphi for iOS 中您可以从 Objective-C 类继承。

于 2013-10-07T19:08:45.417 回答