如何检查我的应用程序是否仍在 Android 服务中 运行?

How to check if my app is still running in an Android service?

我开始使用 Delphi 10.1 Berlin 为我的应用程序开发一个 Android 粘性服务,但我还没有找到任何相关的教程或书籍,所以我问:

检测我的应用程序是否仍在 运行 或已被 OS/user 杀死的最简单方法是什么?

您可以通过包名查找进程id,看看它是否仍然活跃。

ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
for (int i = 0; i < pids.size(); i++) {
    ActivityManager.RunningAppProcessInfo info = pids.get(i);
    if (info.processName.equalsIgnoreCase("packageNameSearchingFor")) {
       processid = info.pid; //found it, we are running
    } 
}

或者您可以简单地将共享值存储在 public 共享首选项或可通过 ContentProvider 访问的数据库中,该值在前台或后台进行检查时会更新。哪种方式都可以。