关于android双屏异显的一些总结和卡死的一些解决方法
2018-01-29 17:16
429 查看
做android项目,接触到一些双屏异显的知识,在这里做个总结:
1.双屏异显
我们知道,这个是双屏异显的大概代码,基本类似,创建一个MyPresentation类,继承Presentation,然后利用下面代码:
mDisplayManager=(DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
displays = mDisplayManager.getDisplays();
if(displays.length<2){//小于2代表只有一个屏幕,那么mPresentation就没有必要创建了
System.out.println("----------------该设备只有一个屏幕,不启用A屏-----------");
return;
}
System.out.println("----------------该设备有两个屏幕,启用A屏-----------");
if(null == mPresentation) {
mPresentation = new MyPresentation(this,displays[1],width,height);// displays[1]是副屏
this.mActivePresentations.put(1, this.mPresentation);
mPresentation.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
mPresentation.show();
但是第二个屏不能放在后台service里面,这个问题很严重,新人容易卡进去,造成卡死和error(100,0),service最好只做后台控制,控件什么的交给Presentation或者mainActivity去做。
2.android卡死现象
卡死分很多种情况,大致情况就是做了某些反应但是前台在规定时间没反应过来造成的,这种卡死状态成为ANR,应用程序无响应,没有好的避免方法只有去进行解决,重启系统又不太人性化,在卡死状态里面,mainActivity里面的线程其实是没有挂掉的,挂掉的只是主函数和handler里面的程序,利用这一点可以做个小小的测试,我们在mainActivity创建一个循环线程,每隔几秒比较两个数,调用一个handler,handler去改变这两个数的数值,当程序卡死的时候handler里面的程序不会执行,而线程会继续执行,反复执行,当发现两个数没有变化,就dosomething就好啦
本人小白一枚,欢迎大神们指正错误,不剩感激,(* ̄︶ ̄)
1.双屏异显
我们知道,这个是双屏异显的大概代码,基本类似,创建一个MyPresentation类,继承Presentation,然后利用下面代码:
mDisplayManager=(DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
displays = mDisplayManager.getDisplays();
if(displays.length<2){//小于2代表只有一个屏幕,那么mPresentation就没有必要创建了
System.out.println("----------------该设备只有一个屏幕,不启用A屏-----------");
return;
}
System.out.println("----------------该设备有两个屏幕,启用A屏-----------");
if(null == mPresentation) {
mPresentation = new MyPresentation(this,displays[1],width,height);// displays[1]是副屏
this.mActivePresentations.put(1, this.mPresentation);
mPresentation.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
mPresentation.show();
但是第二个屏不能放在后台service里面,这个问题很严重,新人容易卡进去,造成卡死和error(100,0),service最好只做后台控制,控件什么的交给Presentation或者mainActivity去做。
2.android卡死现象
卡死分很多种情况,大致情况就是做了某些反应但是前台在规定时间没反应过来造成的,这种卡死状态成为ANR,应用程序无响应,没有好的避免方法只有去进行解决,重启系统又不太人性化,在卡死状态里面,mainActivity里面的线程其实是没有挂掉的,挂掉的只是主函数和handler里面的程序,利用这一点可以做个小小的测试,我们在mainActivity创建一个循环线程,每隔几秒比较两个数,调用一个handler,handler去改变这两个数的数值,当程序卡死的时候handler里面的程序不会执行,而线程会继续执行,反复执行,当发现两个数没有变化,就dosomething就好啦
本人小白一枚,欢迎大神们指正错误,不剩感激,(* ̄︶ ̄)
相关文章推荐
- 关于Android项目没有报错但是出现红叉的解决方法总结
- 关于 Android Dex 方法限制的一些总结
- Android学习札记24:收集到的一些关于解决Bitmap OOM内存溢出的方法
- 关于 Android Dex 方法限制的一些总结
- 总结一些关于fatal error RC1004: unexpected end of file found错误的解决方法
- Android学习札记24:收集到的一些关于解决Bitmap OOM内存溢出的方法
- 关于android-support-v7-appcompat.jar的使用的一些问题和解决方法
- 关于Android加载图片时的OOM的一些解决方法和优化
- 关于android初学时一些问题的解决方法资料(持续更新)
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- 关于Android stdio使用的一些小问题的解决方法
- 关于android中bitmap使用时的oom的一些解决方法
- 关于Android加载图片时的OOM的一些解决方法和优化
- 关于android开发遇到的一些问题的解决办法---间断的更新
- 关于Android横竖屏切换的解决方法
- 关于编译ffmpeg的output-example.c和api-example.c 错误的一些解决方法
- 关于ModalPopupExtender控件不能居中显示的一些解决方法
- 关于编译Android时出现Error 41的解决方法
- (转)关于primary文件组已满的原因及解决方法总结 作者:邹建
- 关于编译android时出现Error 41的解决方法