84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
大家好,最近在开发公司app 的离线下载数据功能。就像:网易新闻,腾讯新闻中的离线模式一样。
功能上都实现了。想请教一下资深的安卓开发工程师,在下载离线数据的时候,需不需要冻结UI(在下载完成之前不让用户使用app的其他功能)?因为测试后,发现不冻结UI,程序也能正常使用,只是慢了点(应该是排队读写数据引起的)。但是上面提到的二个app都冻结了UI ,是有其他的原因吗?
欢迎选择我的课程,让我们一起见证您的进步~~
所谓的冻结UI,我看题主的意思就是去禁止在数据加载前做任何操作,离线的话数据加载在本地,分页加载的话,数据加载速度应该很快,但是肯定是异步去做加载比较好,对于整个界面,如果有需要到数据加载后才能操作的元素,那么就禁止,其他可用的元素控件可以不选择禁止,当然一般诸如题主所言,其实大抵都是数据加载完成后才允许的,首先这样做可以避免逐一去确认哪些是数据加载完成后才能进行的操作,哪些不是,会比较繁琐。统一禁止会省很多事情,而且加载比较快也不会说怎么影响体验。
当然如果数据加载很慢,首先做的并不是不冻结UI,如果数据在10s内都无法加载完成(离线)其实考虑的应该是设计是否有问题,数据是不是加载太多,或者本地保存的数据过多等等。我这边做过本地数据库的应用基本也是锁定界面的,因为需要展示的数据在一屏幕内不需要1s就能加载完成,不需要对各个元素去做控制。
你所说的冻结ui是什么?我用网易新闻下载离线新闻时并不影响我使用其他功能啊!离线下载本来就要在后台异步进行,终究要启动线程来实现,不干扰其它活动。
现在软件都是用户体验放第一位了,肯定不能冻结UI啊,你要下载数据可以后台异步下载。应该对用户操作没有影响的。你说的排队读写数据是不是并发没有做好导致堵塞了?
如果并发觉得慢的话,修改线程的优先级。
所谓的冻结UI,我看题主的意思就是去禁止在数据加载前做任何操作,离线的话数据加载在本地,分页加载的话,数据加载速度应该很快,但是肯定是异步去做加载比较好,对于整个界面,如果有需要到数据加载后才能操作的元素,那么就禁止,其他可用的元素控件可以不选择禁止,当然一般诸如题主所言,其实大抵都是数据加载完成后才允许的,首先这样做可以避免逐一去确认哪些是数据加载完成后才能进行的操作,哪些不是,会比较繁琐。统一禁止会省很多事情,而且加载比较快也不会说怎么影响体验。
当然如果数据加载很慢,首先做的并不是不冻结UI,如果数据在10s内都无法加载完成(离线)其实考虑的应该是设计是否有问题,数据是不是加载太多,或者本地保存的数据过多等等。我这边做过本地数据库的应用基本也是锁定界面的,因为需要展示的数据在一屏幕内不需要1s就能加载完成,不需要对各个元素去做控制。
你所说的冻结ui是什么?我用网易新闻下载离线新闻时并不影响我使用其他功能啊!离线下载本来就要在后台异步进行,终究要启动线程来实现,不干扰其它活动。
现在软件都是用户体验放第一位了,肯定不能冻结UI啊,你要下载数据可以后台异步下载。应该对用户操作没有影响的。你说的排队读写数据是不是并发没有做好导致堵塞了?
如果并发觉得慢的话,修改线程的优先级。