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

标签 android delphi android-service delphi-10.1-berlin android-service-binding

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

检测我的应用程序是否仍在运行或已被操作系统/用户终止的最简单方法是什么?

最佳答案

您可以通过包名称查找进程 ID,看看它是否仍然处于 Activity 状态。

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 访问的数据库中。哪种方式都可以。

关于android - 如何检查我的应用程序是否仍在 Android 服务中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46332761/

相关文章:

delphi - 如何在Delphi上获取事件表单的ClassName(可能来自另一个应用程序)?

multithreading - Delphi COM 对象多线程

delphi - 如何解释 RtlLeaveCriticalSection 中的访问冲突

android - 从 Delphi (RAD Studio) 中的 Android 服务写入 SQLite 数据库

android - 当我从我的 Android 应用程序进行 Web 服务调用时,如何找到传输的数据量?

android - 在android listview中重复选择复选框

android - ionic2:错误:未找到 Android SDK。确保它已安装。如果不在默认位置,设置ANDROID_HOME环境变量

android - Phonegap 新版本适合 iOS 应用程序开发中的数据库位置

独立进程中的 Android 服务

Android:实现LocationManager的最佳实践