0

我在 android 应用程序开发方面迈出了第一步。想要创建一个连接到网站的应用程序,填写表格并在提交后检查结果。该过程作为广播接收器每 24 小时执行一次。

因为这个页面使用的是 javascript,所以我使用了 webview。但我认为由于 webview 的异步行为,广播接收器对象在第一次加载页面之前被杀死。

在 onReceive 方法中,我创建了一个新的 webview 对象。在 webview 中,我添加了一个 JavascriptInterface,以便我可以从页面中获取内容以解析成功或失败。onPageFinished 调用广播接收器的成员方法,该方法启动表单填充过程。

据我了解,当 webview 加载页面时,执行流程将离开 onReceive 方法。在此之后,广播接收器被杀死,并且永远不会完成加载页面的 webview 也被杀死。

我正在考虑在离开 onReceive 方法之前等待一个特殊事件。但我不知道这是否是最好的解决方案以及如何实现这一点。

在此先感谢所有最好的 r2p2

4

1 回答 1

0

从技术上讲,您甚至不能在广播接收器的上下文中显示 WebView,因为它不是 UI 上下文。

实现您的想法的最简洁的方法是让您的 Receiver 启动一个 Activity,然后当您的 WebView 工作完成时它会自行关闭。

但是,如果您不需要用户与 WebView 交互,您应该考虑为自己创建一个 Web 服务并使用原始 HTTP 请求来检索、填写、提交和验证您的表单。

于 2013-06-29T13:55:37.513 回答