【问题标题】:Webview in backgroud: is it a bad practice ? Is HttpClient the solution?背景中的Webview:这是一种不好的做法吗? HttpClient 是解决方案吗?
【发布时间】:2016-03-26 07:43:23
【问题描述】:

我有一个运行WebView 的活动并将一些 JS 注入一个站点(我无法控制)并返回一些数据。我需要在后台使用服务做同样的事情。我该怎么做?

注意:我已经在使用IntentServiceAlarmManagerBroadcastReceivers。我只想知道实现此服务的更好方法(WebView,Http-Client,其他..)

Ps.:我认为如果我通过服务实例化 WebView 0Wx0 会很脏。我错了吗?

Ps:我看了一点HttpClient的,不知道对我有没有用。

谢谢!

【问题讨论】:

    标签: android webview androidhttpclient android-async-http


    【解决方案1】:

    webView.loadUrl() 是异步的

    所以它已经在后台线程上:它立即返回,WebView 继续在单独的线程上工作。

    要获取 WebView 页面加载的回调,请使用 WebViewClient.onPageFinished(....)

    【讨论】:

    • 对不起,我不清楚。我实际上在我的 UI WebView 中使用了 onPageFinished。但我需要在后台使用服务做同样的工作。
    【解决方案2】:

    让您的服务创建一个新的 webview 活动。所以在后台的某个事件中,你可以启动一个 webview Activity 并做同样的事情。根据事件的类型,您可以使用 intentService,否则可以使用粘性长期运行的服务

    【讨论】:

    • 我正在使用 IntentService 来执行此操作。但是WebViews 只能从 UI Thread 实例化。我需要用 IntentService 做到这一点:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多