近日,一直在弄签名模板的问题,SignaturePad(签名的模板控件)界面,在熄屏后一直报两种错:
第一个错:获取的长宽的长度必须大于0:
java.lang.IllegalArgumentException: width and height must be > 0
但是,我从未在代码中获取或者传参,为什么会出现这种错误呢?(百思不得其解)
后来我又查找好多资料,感觉应该是这里的问题
pad.getSignatureBitmap();
这个方法是获取当前签字模板上的所有信息,绘制成Bitmap格式,然后调用这个方法
Bitmap.createBitmap(getWidth(), getHeight(),Bitmap.Config.ARGB_8888);
可是,当熄屏的状态下,getWidth(), getHeight() 无法获取到View的宽高,所以导致报错?
但是我并没有调用这个方法的时候,熄屏也还是报错。。。。(抓狂ing。。。)
第二个错误如下:
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1231612 bytes。
个人理解是传递的数据太大,导致异常,但是这个界面我并没有传递任何东西啊。。。。(再一次抓狂ing。。。。)
这两个问题困扰了我好长时间,后来实在没有找到问题,但又要实现功能,只能在Activiy的生命周期做文章了
如果你也有此类问题,可以重写onPause方法,我就是使用此类方法,在熄屏的时候,Activity会调用onPause方法,可以把后续的操作写在这里,但是不建议在这里进行传递数据等操作。
如果有同样问题的各位大牛们,希望不吝赐教!!!
如果有思路或者应对之法的,希望在评论区留下您独到的见解!!!