开发了一款手机app,两部手机在远程同屏的时候 ,在对方所有对应权限全部打开情况下,包括无障碍 ,对方的屏幕会闪一下屏 (不是闪退,是无障碍在替用户点击弹窗,允许同屏,每次都闪一下,很明显。想做到首次同屏可以闪一下屏幕,之后短时间内,再次同屏就不闪屏幕)。此外在对方息屏的情况下,我方不能判断对方是息屏 ,同屏不成功后 ,对方手机再次亮屏会出现 会有提醒弹窗 。此问题解决不了 。还有别的一些问题等待请教。
在默认情况下,android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初 始化列表数据、向服务器发送请求获取数据等等。同样,使用startactivity(intent)方法从一个activity进入到新的 activity时,这个过程中也会出现短暂的黑屏。这个问题的存在是由android应用框架决定的,但的确很影响用户体验。试试以下方法
第一步:自定义theme(主题)
在your_project/res/values/styles.xml中加入自定义activity的theme,如下所示:
其中<item name="android:windowistranslucent">true</item>的意思是设置目标 activity(要启动的那个activity)是透明的。很容易理解,两个activity,a和b;在a中启动b,因为b是透明的,看到的背景仍是 a,这样就解决了这个短暂的黑屏问题。
修改代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- activity主题 -->
<style name="activitytheme" parent="@android:style/theme">
<item name="android:windowistranslucent">true</item>
</style>
</resources>
第二步:修改manifest,将theme应用到目标activity上
定义好theme后,就该为对应的activity绑定theme了。这个代码主要在manifest中实现,在activity中加上以下属性:
<activity android:name=".activity.placingorderstep1activity"
android:theme="@style/activitytheme" />
第二种方案
1 在选项卡的应用中使用了未绑定控件的标签
在选项卡中,应用一些标签对操作进行一些描述,是很多人都经常做的,但要注意,纯标签会造成闪屏,所以,这里即便是纯标签就可以完成的使命,也要故意给它一个可绑定的控件,如文本框.当然,这个文本框一点其他作用也没有,你可以把文本框的属性设置为不可用,锁定,边框及背景都为透明,宽度为0,就能很好地把它"隐藏"了.
2 在图像控件之上放了未绑定控件的标签
为了美化窗体,可能会在窗体上布局了图像控件,然后又可能在上面布局了标签,以做按钮使用.这种情况有可能会造成闪屏,解决的方法,可以的话,把背景图象转移到窗体的"图片"属性里去.
3 把标签当按钮使用时,当鼠标在标签上移动时闪屏
有很多人喜欢用未绑定的标签做按钮使用,用标签做按钮自然有很多优点,这里不多说,但处理得不好的情况下,就会出现闪屏.这种情况出现在当鼠标在标签之间移动时有移动事件发生,在它的移动事件里,我建议多判断,少执行.不要觉得太多的判断有点烦,但判断多了,就可以尽量少地执行.
举个简单的例子,当你在一个标签上移动时,你可能想让它文本变成蓝色,那你不能总移动总变色,你要判断下当前是不是蓝色,不是的话,再变色.
可能还会有其他的原因造成闪屏
实在不行就找同行远程解决吧。我们有做安卓开发的小伙伴
不远程同屏会不会有这个闪退的问题。
可能因为无线网络不是很稳定,信号不好的时候容易闪退,另外和手机运行也有关系,如果同时打开了很多应用,手机cpu运行速度跟不上容易造成崩溃导致闪退。
可以找网络信号好的地方进行同屏,或是换一个好的网络,还要检查是否后台运行较多应用,如果是就把其他应用关掉。
检查一下同屏时,发送给对方手机的共享桌面视频,是不是出现丢帧了,如果是丢帧了,丢帧应该挺严重的,闪屏了都。
可以通过打印日志排查。
手机APP软件问题可能帮助不到你太多,这里给几个测试中常见的影响因素,供你参考:
1、每个手机亮度,有手动和自动调节亮度的功能,大多手机是自动调节,有可能是手机亮度自动调节的关系;
建议改成手动调节亮度测试一下
2、不同手机安装APP应用,都容易存在不兼容问题,当多个应用软件在运行过程中出现不兼容现象,也有可能造成闪屏;建议关掉后台正在运行的一部分程序,只留你远程的APP,再测试一下
3、手机电压不稳定,也会存在闪屏的可能;建议测试的手机保持电量充足的情况下【大于50%】,再测试一下。
4、网络以及其他,常见的是网络不稳定,导致我们数据丢失,造成闪屏现象;建议监控下WIFI信号波动和数据传输结果、
查看是不是在APP上的兼容性问题,弄个测试文件检验一下,查看bug报告
调试的时候会有一些依赖编译文件可能会导致这些问题,你可以打包安装到手机看看,还是以最终的真机为主,不用在意调试中的这些问题的
这个闪屏这个和网络也有很大关系的,还有相关授权是否都能获取了,像腾讯会议,有时候同屏的时候网络不好,也会闪屏
没写过同屏功能 给出建议
1 如果是复刻别人app 也就是外包项目改改直接拿来用的话,先查一下代码,我也遇见过,以为自己完美复制,其实有些地方要改,当然如果自信的话 直接第二条
2 换个测试机,之前写app的时候有个弹框,就是因为测试机系统有出入,导致以为是安卓写错了,换测试机后发现可以实现然后再让其考虑兼容性
3 如果换几个不同机器还不行,那就考虑app 再申请权限的时候调用的 比如系统的方法是否能换一下,或者时不时使用插件或者第三方库有什么更新,去官网看一下那些评价
4 直接从源那里请教