Android:Activity 与另一个应用重叠

Android: Activity overlap another app

我需要一些帮助来指导我的项目,我需要我的应用程序识别何时启动另一个应用程序然后我的 activity 出现。 我研究了 service、intentservice 和 broadcastreceiver。但我还不知道如何执行我的想法。 你们能给我推荐一些帖子、书籍、教程吗?

P.S.: 我熟悉 Java 和 Kotlin

嗯听起来有点不道德。但是,你可以做到。

首先编写您的服务,该服务将 运行 持续。然后确定您检查应用程序是否 运行ning 的频率。您需要清单中的 GET TASKS 权限。然后定期检查 运行ning 软件包,例如:

public static boolean isAppRunning(final Context context, final String packageName) {
        final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
        if (procInfos != null)
        {
            for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
                if (processInfo.processName.equals(packageName)) {
                    return true;
                }
            }
        }
        return false;
    }

然后只需使用您关心的包从您的服务中定期调用此方法。如果您看到它 运行ning 那么只需创建一个意图并将 FLAG_ACTIVITY_NEW_TASK 放入意图中以确保它启动您选择的 activity。

另一种方法是读取 log cat 日志并不断扫描它以查找正在启动的应用程序。无论哪种方式,它都可能不是即时的,除非你总是 运行ning,这可能会消耗大量电池并最终最有可能警告用户电池使用情况。

好歹就是这样,不管是好是坏,都行哈哈。