Android:活动重叠另一个应用程序

我需要一些帮助来指导我在一个项目中,我需要我的应用程序识别另一个应用程序何时开始,然后我的活动出现。 我研究了服务,intentservice和broadcastreceiver。 但我不知道如何执行我的想法。 你们可以推荐我一些职位,书籍,教程吗?

PS:我熟悉Java和Kotlin

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

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

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; } 

然后,只需定期从您的服务中调用此方法,然后使用您关心的软件包。 如果您看到它正在运行,那么只需创建一个意图,并将FLAG_ACTIVITY_NEW_TASK设置为意图确保它启动您选择的活动。

另一种选择是读取日志猫日志,并不断扫描它的应用程序启动。 无论哪种方式,它可能不会是即时的,除非你总是运行,这可能是电池密集型,并最终警告用户最有可能的电池使用情况。

无论如何,这就是你怎么做的,无论是好还是坏,这都会奏效。