Tom*_*omb 6 javascript service android webview
我的Android应用程序中有一个WebView,我们的服务器会调用很多javascript.我想实现一个系统,其中来自服务器的信号将唤醒/重启应用程序并将其带到前面以提醒用户.我知道这是非常令人讨厌的,但在我看来这是必要的.
似乎实现这一目标的唯一方法是让WebView在服务中生效(因为操作系统可以随时杀死活动).有谁知道这将如何工作?我读过WebViews只能驻留在Activities中.
谢谢!!
WebView 只能驻留在 Activity 中,因为它们是 UI 组件。解决此问题的最佳方法是将 javascript 正在进行的通信卸载到服务本身中。这就是 Android 的工作原理。唯一的其他解决方案是使您的 javascript/服务器通信具有足够的容错能力,使其能够承受随时失去连接的情况。对于如何做到这一点的想法,我会研究 REST 模型。如果您想更好地了解如何在 Android 中使用 REST,我建议您观看来自 Google IO 的视频。直到今天,它仍然是我的最爱之一。
就从服务器发送信号来启动活动而言,这在某种程度上是可能的。您需要在设备上监听一些东西,很可能是一项服务。您可以让您的服务进行长时间轮询,然后坐在那里等待响应。当它得到服务器的响应时,它可以执行
Context.startActivity(intent)
Run Code Online (Sandbox Code Playgroud)
其中意图是指定您要启动的活动的显式意图。也就是说,如果设备上的资源变得稀缺,服务也可能被终止。最重要的是,互联网连接可能随时丢失(这些是移动电话,人们经常将移动电话带到没有互联网连接的地方)。
最重要的是,这些设备在连接方面并不是 100% 可靠的。对您来说,最明智的做法是更改应用程序规范,以便它们具有更高的容错能力。
这听起来可能很直率,但除了“不要这样做。永远不要这样做”之外,我无话可说。更具建设性的是,我想说,如果你做得正确,你应该能够将你的东西推到后台,并且永远不会打扰用户。请记住,KISS,这不仅仅是一支拥有军队的乐队。这是一个美丽的哲学。保持简单愚蠢。您可能想看一下这个视频,这是我最喜欢的视频之一,可能会帮助您进入不同的心态。有帮助吗?
| 归档时间: |
|
| 查看次数: |
5546 次 |
| 最近记录: |