【问题标题】:How to check if my app is still running in an Android service?如何检查我的应用程序是否仍在 Android 服务中运行?
【发布时间】:2017-09-20 22:38:40
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

您可以通过包名查找进程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
    } 
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多