【问题标题】:How to reopen a background application?如何重新打开后台应用程序?
【发布时间】:2026-02-18 02:40:01
【问题描述】:

我想截取实际屏幕的屏幕截图。 如果我按下一个按钮,我会设置要执行的以下代码:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

这样我就有了主屏幕,但如果我尝试截屏,我总是在新的(主页)之前截取我的应用程序屏幕。 我使用了 Thread.sleep 来等待新屏幕(主页),然后我截取屏幕截图,但我总是使用我的最后一个应用程序字符串。 为什么? 我认为可以使用 KeyPressed 事件来启动 tackeScreenshot(),然后返回应用程序主屏幕。 能不能很好的解决?如果是,我怎样才能回到我在后台运行的应用程序? 干杯 =)

【问题讨论】:

    标签: screenshot onkeypress background-foreground


    【解决方案1】:

    您不能强制您的应用程序回到前台。这将是一个导致一些非常烦人的应用程序的漏洞。您必须找到另一种方法来截取主屏幕的屏幕截图。我想不出办法来做到这一点。似乎其他尝试与您做同样事情的人也没有取得太大成功:

    https://*.com/questions/5374058/taking-homescreen-screenshot-on-android

    【讨论】:

    • 嗯....该死。为什么如果我尝试截屏,我总是截取我的应用程序的最后一个屏幕而不是“实际可视化”屏幕?哦'
    • 我猜是因为您的屏幕截图命令来自您的应用程序,所以上下文在您的应用程序中。
    • 有什么建议吗?可以更改上下文吗? =)
    • 您可以尝试使用ActivityManager或WindowManager,但我对这些系统服务没有任何经验,抱歉。 developer.android.com/reference/android/content/Context.html
    • 我尝试使用服务而不是活动。但在服务中,由于 findViewById,我无法调用某些方法。我该如何解决?我可以在活动中使用 takeScreenShot() 方法,然后在服务中调用它吗?如果可以,如何?我也试图捕捉一些事件,总是在服务中,比如按键按下音量按钮,但这是不可能的......它只在活动中有效......帮助! =(
    最近更新 更多