- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题:我想在 Android WebView 中预加载网页,并在 Activity 准备就绪时将其附加到 Activity。加载网页的触发点是在创建实际 Activity 之前。因此,我通过以下方式在服务中创建了一个 webview 对象。
MutableContextWrapper contextWrapper = new MutableContextWrapper(serviceContext.getApplicationContext());
this.webView = new WebView(contextWrapper);
当创建需要显示此 webview 的 Activity 时,我只需创建一个 framelayout 并添加一个 subview ,即此 webview 并调用 setContentView。这样我的 webview 就会显示预加载的网页。我还做了以下事情
contextWrapper.setBaseContext(CurrentActivity.this);
这是与上面指定的相同的 ContextWrapper 对象。即使在此之后,webview 也不会绘制它能够在正常用例中绘制的 Javascript 警报。
即使我这样做了
ContextWrapper contextWrapper = new ContextWrapper(CurrentActivity.this);
this.webView = new WebView(contextWrapper);
this.webView.loadUrl(someUrl);
WebView 无法弹出 JS 警报。我什至没有在日志中看到任何异常或致命标签。 WebView 无法在其上绘制任何窗口。
这在正常方式下工作正常,意味着直接使用当前 Activity 的上下文创建 webView。
this.webView = new WebView(CurrentActivity.this);
this.webView.loadUrl(someUrl);
据我所知 http://developer.android.com/reference/android/content/ContextWrapper.html只是对它持有的基础上下文执行与在构造函数中传递给它的相同的操作。
我的用例是这样的。我用 http://developer.android.com/reference/android/content/MutableContextWrapper.html 创建了一个 webView 对象传给了它。 MutableContextWrapper 保存某些 Activity 的上下文,或者它可以保存应用程序上下文。当需要显示 webview 的实际 Activity 开始时,我在 MutableContextWrapper 中切换上下文并通过将 webview 放在框架布局和 setContentView 中来显示 webview。基本上,开始加载页面的触发器是在 Activity 创建之前,因此我想在 webview 中预加载页面,并在创建 Activity 时将其附加到 Activity。
最佳答案
看起来您是在主 UI 线程之外创建 Web View (基于 serviceContext
的使用)
这通常不是一个好主意,因为 Web View 希望其内部处理程序绑定(bind)到主 UI 线程。
还有其他与此相关的话题:
A WebView in a thread can't be created
最好在 Activity 加载后加载 webview(即在 onCreate
方法中)并简单地向用户显示“正在加载”指示器。您可以隐藏 webview(使用 setVisibility
)直到它加载页面,并使用 WebViewClient监听加载事件。
页面加载后,将您的 webview 的可见性设置为 VISIBLE
关于android - 使用 ContextWrapper 和 Context 创建 Android WebView 对象时有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15293724/
我正在尝试加载外部 SVG 并将其附加到 Electron 项目中的现有 SVG。 d3.xml 方法对我不起作用,所以我正在查看 d3.symbols ,希望如果我提供路径数据(来自 fs.read
我正在编写一个 Web 应用程序,使用 Go 作为后端。我正在使用这个 GraphQL 库 (link)和 Echo Web 框架 (link) .问题在于 graphql-go 库在 Go 中使用了
有没有办法改造 gin.Context至 context.Context在围棋?构建 Go 微服务应该使用什么? 最佳答案 标准库的 context.Context type 是一个接口(interf
如果我能够像这样注册一个接收器: LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new Inte
如果我有 appengine.Context 而不是 ,我不知道如何调用 cloud.WithContext 和 google.DefaultClient >上下文。上下文。 有(旧的)“appeng
有什么区别- AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SER
我刚读了这篇文章:Build You Own Web Framework In Go为了在处理程序之间共享值,我选择了 context.Context我通过以下方式使用它在处理程序和中间件之间共享值:
在 Visual Studio Code 中,我对 3 个“上下文”菜单项感到非常困惑:Run Tests in Context和 Debug Tests in Context和 Run .NET C
我正在使用带有 和 @Autowired 的 Spring 2.5.6 版本。 虽然我在调度程序上下文中使用 SimpleUrlHandlerMapping ,但一切正常 - Autowiring 工
我使用的是 Context.registerReceiver()、Context.sendBroadcast(Intent) 和 Context.unregisterReceiver() 但是当我看到
问题在于以下错误, [错误] 在 scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4580)[错误] 在 scal
最近我正在尝试使用 SoundPool 在我的应用程序中播放一些简单的音效 但不幸的是它在 AVD 中不起作用并且应用程序崩溃 “上下文”到底是什么意思? 完全不懂 提前致谢 最佳答案 任何上下文都允
我正在使用上下文建议器,我想知道我们是否可以设置用于建议的上下文范围,而不是使用所有上下文。 目前查询需要匹配所有上下文。我们能否在上下文中添加“或”运算和/或指定用于特定查询的上下文? 以here为
我被一个使用这种方法的函数卡住了。所以我知道如何使用 expressionValue(with:context:) 函数,但上下文如何参与对我来说仍然是不透明的。也许有人有简单的例子? try tra
我正在尝试在上下文管理器中更改我的 python 程序中的目录。使用 invoke.context.Context 似乎是正确的方法,从 Fabric 文档中获取并且使用常规 with os.chdi
我最近开始使用 Android Studio 处理我的 Android 项目。我注意到在 IDE 的右下角,有文本 Context: .好奇心打败了我,所以现在我正在网上搜索更多信息。我还没有找到任
假设我有这些功能: func A(ctx context.Context) { // A takes some time to process } func B(ctx context.Con
所以,我有一个 context.Context( https://golang.org/pkg/context/ ) 变量,有没有办法列出这个变量包含的所有键? 最佳答案 可以使用不安全反射列出 co
我正在尝试找出传播 context.Context 的正确方法用于在使用 Gin 时使用 OpenTelemetry 进行跟踪。 我目前有一个 gin调用函数并传递 *gin.Context 的处理程
我们可以使用 Remove["context`*"] 删除特定上下文中的所有符号。 .但是是否可以删除 "context`"自己从系统中删除,以便它不再在 Contexts[] 中列出? 最佳答案 据
我是一名优秀的程序员,十分优秀!