[返回] [最新] [最热门] [最高评价]

处理 WebView 与 ViewPager 滑动冲突

问题场景
在项目的App中,有一个ViewPager,它内部包含了WebView,而内部的webview加载了一个可以滑动的网页。

当我们在网页滑动的时候,会直接切换到下一个viewpager的页面,而不是优先响应webview的滑动。

具体的效果如视频

期待的示例效果

解决思路

其实思路还是比较简单,大概如下

优先响应webview内部滑动

如果webview内部滑动完成,则响应外
...

技术小黑屋 2019-01-27 20:07 | 查看: 187

聊一聊未捕获异常与进程退出的关联

之前的文章JVM 如何处理未捕获异常 我们介绍了JVM如何处理未捕获异常,今天我们研究一个更加有意思的问题,就是在JVM中如果发生了未捕获异常,会导致JVM进程退出么。

关于什么是未捕获异常,我们在之前的文章已经介绍过,这里不再赘述,如欲了解,请阅读JVM 如何处理未捕获异常

辅助方法

一个产生未捕获异常的方法

1
2
3
4
5

//In Utils.java file
pub
...

技术小黑屋 2019-01-21 19:52 | 查看: 544

解决Android手机连接Charles unknown问题

最近很多同事反馈使用Charles抓包出现了很多unknown的问题,现象如下图

查看右侧的原因,给出的结果是这样的

这里将讲解如何解决这个问题,但是开始阅读之前,请确认符合如下的条件

本文仅适用于Android 7及之后设备

待抓包的应用设置了targetSDK 为24及其以上

已经配置好了charles的证书

好的,开始了。

原因

我们在设备上安装的charles证书,属于用户
...

技术小黑屋 2019-01-13 20:59 | 查看: 306

JVM 如何处理未捕获异常

继之前的文章 详解JVM如何处理异常,今天再次发布一篇比较关联的文章,如题目可知,今天聊一聊在JVM中线程遇到未捕获异常的问题,其中涉及到线程如何处理未捕获异常和一些内容介绍。

什么是未捕获异常

未捕获异常指的是我们在方法体中没有使用try-catch捕获的异常,比如下面的例子

1
2
3
4
5
6
7

private static void testUncaughtException(
...

技术小黑屋 2019-01-06 21:18 | 查看: 624

JVM 中的守护线程

在之前的《详解JVM如何处理异常》提到了守护线程,当时没有详细解释,所以打算放到今天来解释说明一下JVM守护线程的内容。

特点

通常由JVM启动

运行在后台处理任务,比如垃圾回收等

用户启动线程执行结束或者JVM结束时,会等待所有的非守护线程执行结束,但是不会因为守护线程的存在而影响关闭。

判断线程是否为守护线程

判断一个线程是否为守护线程,主要依据如下的内容

1
2
3
4
5
6
...

技术小黑屋 2018-12-16 19:22 | 查看: 649

详解JVM如何处理异常

无论你是使用何种编程语言,在日常的开发过程中,都会不可避免的要处理异常。今天本文将尝试讲解一些JVM如何处理异常问题,希望能够讲清楚这个内部的机制,如果对大家有所启发和帮助,则甚好。

当异常不仅仅是异常

我们在标题中提到了异常,然而这里指的异常并不是单纯的Exception,而是更为宽泛的Throwable。只是我们工作中习以为常的将它们(错误地)这样称谓。

关于Exception和Thro
...

技术小黑屋 2018-10-21 20:14 | 查看: 417

有点意思的Kotlin的默认参数与JVMOverloads

在Java中,当我们定义一个类的时候,总会出现一些变量是必须要填写的,而另一些是可选的。比如像下面这样,我们定一个Person类,其中name是必须填写的,而性别sex和isChinese可选,如果不填写就直接使用默认值。

1
2
3
4
5
6

public class Person {
public Person(String name) {}
public Person(St
...

技术小黑屋 2018-10-14 19:18 | 查看: 612

探究Kotlin的局部方法

在Kotlin中,定义方法很有趣,不仅仅因为方法的关键字是fun(function前几个字符),还是因为你会惊奇的发现,它允许我们在方法中定义方法。如下

1
2
3
4
5
6
7
8

fun methodA() {
fun methodB() {

}
methodB() //valid
}

//methodB() invalid

其中

methodB定义在metho
...

技术小黑屋 2018-10-07 19:47 | 查看: 728

浅析WeakHashMap

在Java或者是Android编程中,我们一般都会使用到Map,比如HashMap这样的具体实现。更高级一点,我们可能会使用WeakHashMap。

WeakHashMap其实和HashMap大多数行为是一样的,只是WeakHashMap不会阻止GC回收key对象(不是value),那么WeakHashMap是怎么做到的呢,这就是我们研究的主要问题。

在开始WeakHashMap之前,我们先要
...

技术小黑屋 2018-07-23 17:24 | 查看: 447

为什么局部变量需要显式设置初始化值

我们在编程中,无时无刻地都在于方法打交道,而在方法中,我们很难不使用局部变量,比如我们有下面的这样一段很简单的代码

1
2
3
4

public void dump() {
String localName;
System.out.println("dump localName=" + localName);
}

随着我们敲打出上面的代码,IDE也会同时抛
...

技术小黑屋 2018-07-16 08:40 | 查看: 530

AssetManager.finalize() timed out after 10 seconds分析

没有代码,就没有bug。程序员在编码时,总会比不避免的出现bug。倒不是因为我们热爱制造bug,创造机会和测试妹子频繁沟通。而是现实情况很复杂,存在着很多不确定性。尤其是那些崩溃从stacktrace上来看,完全想象不到和项目代码之间的直接联系。

在我们的项目崩溃中,有一个比较常见的bug,就是 java.util.concurrent.TimeoutException android.cont
...

技术小黑屋 2018-07-10 21:44 | 查看: 435

宽带提速记

用了一年宽带马上就要到期了,去联通营业厅咨询了一下,发现联通已经悄悄的把我的100M免费升级成了300M(做好事为什么不告诉我一声)。心中划过一丝窃喜,但是随后脑海中抛出了一个疑问,都升到了300M了,怎么丝毫没有感觉到速度提升呢?

联通给的光猫WIFI有问题

在一年前报装的时候,我确实测过网速,当时使用QQ手机管家测过,将近50M到100M。觉得可能是测试节点的问题,就没有太留意。

不过现
...

技术小黑屋 2018-07-01 20:14 | 查看: 585

...更多...