【问题标题】:Android: Switch back to Chrome from appAndroid:从应用切换回 Chrome
【发布时间】:2017-01-07 20:40:45
【问题描述】:

我在安卓平板电脑上有一个网络链接,点击后会全屏运行 Chrome。

在那个网站上,我可以单击一个链接并打开我的应用程序(在 Android Studio 中开发)。但是一旦打开该应用程序,我希望它立即将焦点发送回 Chrome。我看到有人在这个论坛上说有一种切换任务的方法,但他们没有提供如何操作的代码或链接。

或者从任务管理器中禁用我的应用程序(但仍然可以运行)也许也很好?

我正在尝试从 Chrome 网站向应用程序发送启动和停止命令。即第一次,它打开并“启动”应用程序做某事。应用程序保持打开状态,直到它收到来自网站的“停止”命令。过程重复。

我已经在 onResume 函数中尝试了 Intent 的 getdata,但由于该应用在调用后不会将“焦点”发送回网站,因此下次 Chrome 向其发送数据时不会调用 onResume。该应用程序是“不可见的”,因此当它打开时,用户会继续浏览 Chrome 网站,甚至不知道应用程序已打开。但就像我说的那样,即使它们在 Chrome 中继续存在,但现在真正的焦点是在另一个应用程序上。这有点奇怪。

所以,这有点不同,因为我必须切换回已经打开的 Chrome 链接,而不仅仅是 Chrome……如果你明白我的意思的话。

感谢任何有关如何在我的应用程序中以编程方式执行此操作的帮助。

【问题讨论】:

    标签: android google-chrome switch-statement task


    【解决方案1】:

    当您的应用程序为启动命令打开时,启动一个后台服务并告诉它启动,然后如果您有一个活动,则完成()该活动 - 这会将控制权返回给操作系统,该操作系统将显示上一个活动 - chrome

    当您的应用收到停止命令时,请执行相同操作 - 将停止命令发送到您的后台服务,然后完成

    Android 有几种服务类型explained here。通常你可以完全避免通过starting a service directly from another app 进行任何活动(如果这是一个选项),但是因为我认为你正在使用浏览器的深度链接功能,所以我建议一个没有 UI 的活动来捕获该链接并如上所述启动服务

    【讨论】:

    • 所以我需要 Chrome 链接、应用程序和服务?我正在考虑简单地创建一个空的不可见的第二个应用程序,第一个应用程序打开该应用程序以使其自身脱离焦点。然后当他们浏览网站并发送停止时,onResume 应该开始(在第一个应用程序中),因为第二个应用程序应该有焦点。我知道有点 hacky....
    • 你想要的是后台处理,这就是服务的用途
    【解决方案2】:

    找到了这个,有效:

    super.onBackPressed();

    【讨论】:

    • 所以你只想结束你的活动?这与调用 finish(); 相同。在这种情况下
    • 它适用于我的目的,但最初的问题是如何切换回 Chrome。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2015-01-13
    • 2015-08-16
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多