javascript - 服务中的Android webview?

标签 javascript android service webview

我的 android 应用程序中有一个 WebView,我们的服务器从中调用了很多 javascript。我想实现一个系统,其中来自服务器的信号将唤醒/重新启动应用程序并将其带到前端以提醒用户。我知道这非常令人讨厌,但在我的情况下这是必要的。

似乎实现此目的的唯一方法是让 WebView 存在于服务中(因为 Activity 可以随时被操作系统终止)。有谁知道这将如何工作?我读到 WebViews 只能驻留在 Activity 中。

谢谢!!

最佳答案

WebView 只能驻留在 Activity 中,因为它们是一个 UI 组件。解决此问题的最佳方法是将 javascript 正在执行的通信卸载到服务本身。这就是安卓的工作原理。唯一的其他解决方案是使您的 javascript/服务器通信具有足够的容错性,以便它可以随时承受失去连接。有关如何执行此操作的想法,我会研究 REST 模型。如果您想更好地了解如何将 REST 与 android 一起使用,我建议您使用 video from Google IO .直到今天,它都是我的最爱之一。

就从服务器发送信号以启动 Activity 而言,这在某种程度上是可能的。您需要在设备上监听一些东西,很可能是一项服务。你可以让你的服务做一个长轮询,因此只是坐在那里等待响应。当它从服务器获得响应时,它可以执行

Context.startActivity(intent)

其中 intent 是一个明确的 Intent ,指定您要开始的 Activity 。也就是说,如果设备上的资源变得稀缺,也可以终止服务。最重要的是,互联网连接随时可能丢失(这些是手机,人们经常将手机带到没有互联网连接的地方)。

底线是,这些设备在连接方面并非设计为 100% 可靠。对您而言,最明智的做法是更改您的应用规范,使其具有更高的容错能力。

这听起来可能很直白,但除了“不要这样做。永远不要这样做”之外,我无话可说。更具建设性的是,我会说,如果你做对了,你应该能够将你的东西推到后台,永远不会打扰用户。请记住,KISS,这不仅仅是一支拥有军队的乐队。这是一个美丽的哲学。保持简单愚蠢。你可能想看看这个video ,这是我最喜欢的之一,可能会帮助您进入不同的心态。有用吗?

关于javascript - 服务中的Android webview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884568/

相关文章:

java - 意外按下不允许安装应用程序并记住 - Android Studio

android - clearApplicationUserData 最小化应用程序

android - 循环中的计数器

c# - 在 Windows 服务中使用 TAPI 语音

javascript - 加载时引导过渡到最后一个 slider

javascript - 如何在 Javascript 中查找复杂对象数组中的最小值/最大值?

javascript - Google drive pdf 未正确上传到 s3 服务器

Javascript/Angular JS 搜索数组对象到数组对象

android - 完成工作后如何停止服务?

linux - 如何检查我不知道名称的服务是否在 Ubuntu 上运行