Консенсус (большинство голосов) разработчиков 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.
- person pskink   schedule 14.12.2015