Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在IntentService中使用WebView?_Android_Webview_Intentservice - Fatal编程技术网

Android 如何在IntentService中使用WebView?

Android 如何在IntentService中使用WebView?,android,webview,intentservice,Android,Webview,Intentservice,我和你的处境一样。我需要在IntentService中使用WebView。总结如下: 我需要使用JavaScript和管理Cookie,因此最简单的方法是使用某种无GUI的浏览器 Android上没有无GUI的web浏览器,因此我必须找到一种方法来使用WebView,或者找到一种方法来模拟浏览器 我想使用一个只能在UI线程上运行的WebView实例 我的问题是: 是否有方法序列化我的活动的上下文,以便我可以使用此上下文创建我的网络视图 如何使用Androids类来模拟活动 还有其他没有提

我和你的处境一样。我需要在
IntentService
中使用
WebView
。总结如下:

  • 我需要使用JavaScript和管理Cookie,因此最简单的方法是使用某种无GUI的浏览器
  • Android上没有无GUI的web浏览器,因此我必须找到一种方法来使用
    WebView
    ,或者找到一种方法来模拟浏览器
  • 我想使用一个只能在UI线程上运行的
    WebView
    实例
我的问题是:

  • 是否有方法序列化我的
    活动的
    上下文
    ,以便我可以使用此
    上下文
    创建我的
    网络视图
  • 如何使用Androids类来模拟活动
还有其他没有提到的想法吗?值得思考的是:

Android上没有无GUI的web浏览器

虽然我最近没有尝试过它,
WebView
至少过去对显示其用户界面没有特殊要求。我在
服务
中使用了
WebView
,以JavaScript解释器为例(之前我们有更好的选择)

现在,
IntentService
不是一个好的选择
WebView
在很大程度上是异步的,
IntentService
将在
WebView
有机会完成其工作之前销毁自身。使用常规的
服务
,在这里您可以控制
服务
的生命周期,因此只有当您准备好调用
stopSelf()
时,才可以调用它

我想使用只能在UI线程上运行的WebView实例

WebView
和线程之间的关系很复杂。但是,当我上次尝试它时,IIRC,一个实际上没有出现在屏幕上的
WebView
,并不需要主应用程序线程。但是,正如我所指出的,
WebView
以异步方式完成大部分工作。您可能会发现,您不需要自己的后台线程

有没有办法序列化我的活动的上下文,以便我可以使用此上下文创建我的WebView

不,也不会解决你的任何问题

如何使用Androids ContextWrapper类来模拟活动


这是不可能的,也不能解决您的任何问题。

您好,我正在使用您的
WakefulIntentService
的一个稍微修改过的版本(修剪后可以在没有AlarmReceiver的情况下工作)。我还创建了一个
SyncBrowse
类,用
WebView
的实例初始化该类,该类处理
WebView
的异步行为。该类使用
JavaScriptInference
.wait()
.notify()
等待执行my JS或页面加载完成。我是否应该担心我让WakefulIntentService等了这么久?仅供参考,该应用程序不会被大量用户使用,每天只有几个人使用几个小时,服务报警间隔约为1小时。@cozkul:“我是否应该担心我让WakefulIntentService等待这么久?”——这不是
WakefulIntentService
IntentService
本身设计的目的。使用常规的
服务
,这样您就可以控制线程和服务寿命。您好。我把一切都转移到了
服务
。无法使用
服务
上下文初始化
网络视图
。当我在我的一个活动中声明一个
静态公共上下文
,并使用它初始化我的
WebView
时,至少它会初始化,但当您发出WebView.loadUrl()命令时,应用程序会崩溃。你有什么办法让它工作吗?@cozkul:“用服务上下文初始化WebView是不可能的”——正如我所写的,它曾经工作过。然而,我已经有一段时间没有试过了。您遇到了什么具体问题?”你有什么办法让这一切顺利进行吗?“--我建议您打开一个新的堆栈溢出问题,在这里提供代码、堆栈跟踪等。好的,谢谢。明天我将创建一个新问题,并提供更好的解释和代码。我发现,当您使用静态上下文时,一切正常,但必须在主UI线程上调用loadUrl。