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类来模拟活动
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。