【发布时间】:2024-01-01 21:31:01
【问题描述】:
如果我正在编写自己的 Android 应用,我知道如何将其构建为服务,以便开始在后台运行。
但是,有没有一种方法可以启动现有应用(例如,任何来自 Play 商店的随机 .apk),使其在后台启动,而不需要其屏幕接管显示?
或者,我愿意启动应用程序,强制它进入后台,然后重新显示在前台运行的前一个应用程序的窗口(无论它可能是什么)。我不知道如何以编程方式将当前应用置于后台,然后确定上一个应用并将其带回前台。
我愿意以任何可能的方式做到这一点:通过 Java、通过一个或多个命令行实用程序、通过 Tasker 插件、通过 Xposed 模块或其他方式。
提前感谢您对文档的任何指示或任何建议。
【问题讨论】:
-
"有没有办法启动一个现有的应用程序(例如,任何来自 Play 商店的随机 .apk),以便它在后台启动,而不用它的屏幕接管显示?" -- 如果你真的在问是否可以从现有应用程序(例如,它的启动器活动)启动任意活动,而该活动不会占据前台,答案是否定的。 “我不知道如何以编程方式将当前应用程序置于后台...” -- 调用
startActivity()以启动其他活动。 -
".. 确定以前的应用程序并将其带回前台" -- 出于隐私和安全原因,这在较新版本的 Android 上是不可能的。
-
那么,你是说在现代版本的 Android 中没有办法找出之前占用屏幕的活动,所以我可以通过 startActivity() 调用它?甚至没有任何方法可以从命令行查询当前处于前台的活动吗?
-
你甚至无法分辨出之前在前台的app。即使可以,您也无法识别特定活动,并且对于大多数活动,您无法实际启动它,因为它们不会被导出。 “甚至没有任何方法可以从命令行查询当前处于前台的活动吗?” -- 可能在开发机器上。
-
连“dumpsys 活动最近”的#0 条目都没有?我刚刚发现了。
标签: android background apk foreground