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设置为意图确保它启动您选择的活动。
另一种选择是读取日志猫日志,并不断扫描它的应用程序启动。 无论哪种方式,它可能不会是即时的,除非你总是运行,这可能是电池密集型,并最终警告用户最有可能的电池使用情况。
无论如何,这就是你怎么做的,无论是好还是坏,这都会奏效。
- 异步不等待等待
- 无法获得null对象上的属性'kotlinOutputDir' – Kotlin和Spock
- 类型干扰失败。 期望的类型不匹配:必需的字符串在Kotlin和Anko中找到pair <String,String>
- 我在java代码中实现了一个在kotlin中定义的接口。 有’空’types不允许在这里
- 如何使用Android kotlin仅在日期选取器对话框中显示日期和月份
- 用MVP + Dagger进行Android测试2
- API调用不能在Anko Async中使用
- 如何以编程方式获取Android导航栏的高度和宽度?
- Kotlin + Mockito2:演示者测试的ClassNotFoundException