android - 当另一个应用程序启动/启动时启动/启动 myApp
问题描述
我是安卓新手。我想知道关于..
我想开发一个应用程序,当设备中的另一个应用程序(如 gmail 或 facebook 等)启动时启动。我不知道如何开发这个应用程序。我想支持 API 21 及更高版本
对于 8.0 以下的旧版本 android,我可以使用服务并在特定应用启动时启动我的应用(如 applocker),但不允许使用更高版本的 android 服务。
以及当我的应用程序未运行(被杀死)时,我如何在 android 8.0 及更高版本中启动服务或任何替代类/组件。谢谢。
解决方案
使用线程启动服务并使用特定的睡眠时间(例如线程中的一秒)调用以下功能。当其他应用程序在前台运行时,这将启动您的应用程序
List<ActivityManager.RunningAppProcessInfo> runningProcesses = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getRunningAppProcesses();
for (int currentProcess = 0; currentProcess < runningProcesses.size(); currentProcess++)
{
if (runningProcesses.get(currentProcess).importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
if(!runningProcesses.get(currentProcess).pkgList[0].equalsIgnoreCase("your_app"))
{
//start your activity
break;
}
}
}
推荐阅读
- javascript - Javascript - 触发函数从另一个函数返回
- google-cloud-storage - 如何以最优化的方式将包含大量文件的 GCS 存储桶复制到另一个项目
- c++ - tesseract 给出了非常一致的结果除了 /
- java - 在spring boot中我们保存文件的位置
- dart - 维基媒体 CSRF 令牌无效
- reactjs - Next.js 图像优化增加而不是减少文件大小
- python - 使用 pysftp 连接到 SFTP 服务器时出现“SSHException:遇到 EC 密钥,预期的 DSA 密钥”
- python - 在 selenium 上导入请求 cookie
- arrays - 从满足某些条件的两个 Matlab 向量中提取元素对
- azure - 在 Azure 中创建 VM 时出现错误 PropertyChangeNotAllowed