【发布时间】:2015-12-14 08:32:32
【问题描述】:
Java 开发者的共识(最多票数)似乎是
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
但我是一名 Delphi 开发人员,与 10 Seattle 合作。
我在编写函数时已经走到了这一步,但被卡住了。
什么是r? Androidapi.JNI.App.pas 包括JActivityManager 和getRunningServices 方法,返回一个JList,但是一个JList 究竟是什么?
该 .pas 文件中没有 JRunningServiceInfo 的定义。如何定义这个并完成代码?
function TfrmMain.IsServiceStarted: Boolean;
var
ActivityServiceManager: JObject;
FActivityManager : JActivityManager;
List: JList;
Iterator: JIterator;
r:
s: String;
begin
Result := False;
ActivityServiceManager := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE);
FActivityManager := TJActivityManager.Wrap((ActivityServiceManager as ILocalObject).GetObjectID);
List := FActivityManager.getRunningServices(MAXINT);
Iterator := List.iterator;
while Iterator.hasNext and (not Result) do
begin
r :=
s := JStringToString(r.service.getClassName);
Result := (s = 'com.embarcadero.services.MyService');
end;
end;
【问题讨论】:
-
"""The consensus (most votes) for Java developers seems to be ..."""不,请参阅 getRunningServices 的文档:this method is only intended for debugging or implementing service management type user interfaces. -
您的评论毫无意义。这两段代码都引用了 getRunningServices。
-
你读过javadocs吗?
-
不,我从未阅读过 Java 文档。我只是编造一些东西,希望它能编译。
-
那太糟糕了,但这不是我的问题
标签: android delphi delphi-10-seattle