84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
大家好,最近在开发公司app 的离线下载数据功能。就像:网易新闻,腾讯新闻中的离线模式一样。
功能上都实现了。想请教一下资深的安卓开发工程师,在下载离线数据的时候,需不需要冻结UI(在下载完成之前不让用户使用app的其他功能)?因为测试后,发现不冻结UI,程序也能正常使用,只是慢了点(应该是排队读写数据引起的)。但是上面提到的二个app都冻结了UI ,是有其他的原因吗?
欢迎选择我的课程,让我们一起见证您的进步~~
所謂的凍結UI,我看題主的意思就是去禁止在數據加載前做任何操作,離線的話數據加載在本地,分頁加載的話,數據加載速度應該很快,但是肯定是異步去做加載比較好,對於整個介面,如果有需要到資料載入後才能操作的元素,那麼就禁止,其他可用的元素控制可以不選擇禁止,當然一般諸如題主所言,其實大抵都是資料載入完成後才允許的,首先這樣做可以避免逐一去確認哪些是資料載入完成後才能進行的操作,哪些不是,會比較繁瑣。統一禁止會省很多事情,而且載入比較快也不會說怎麼影響體驗。
當然如果資料載入很慢,首先做的並不是不凍結UI,如果資料在10s內都無法載入完成(離線)其實考慮的應該是設計是否有問題,資料是不是載入太多,或是本地儲存的數據過多等等。我這邊做過本地資料庫的應用程式基本上也是鎖定介面的,因為需要展示的資料在一螢幕內不需要1s就能載入完成,不需要對各個元素去做控制。
你所說的凍結ui是什麼?我用網易新聞下載離線新聞時並不影響我使用其他功能啊!離線下載本來就要在後台非同步進行,終究要啟動執行緒來實現,不干擾其它活動。
現在軟體都是使用者體驗放第一位了,一定不能凍結UI啊,你要下載資料可以後台非同步下載。應該對使用者操作沒有影響的。你說的排隊讀寫資料是不是並發沒有做好導致堵塞了?
如果並發覺得慢的話,修改執行緒的優先權。
所謂的凍結UI,我看題主的意思就是去禁止在數據加載前做任何操作,離線的話數據加載在本地,分頁加載的話,數據加載速度應該很快,但是肯定是異步去做加載比較好,對於整個介面,如果有需要到資料載入後才能操作的元素,那麼就禁止,其他可用的元素控制可以不選擇禁止,當然一般諸如題主所言,其實大抵都是資料載入完成後才允許的,首先這樣做可以避免逐一去確認哪些是資料載入完成後才能進行的操作,哪些不是,會比較繁瑣。統一禁止會省很多事情,而且載入比較快也不會說怎麼影響體驗。
當然如果資料載入很慢,首先做的並不是不凍結UI,如果資料在10s內都無法載入完成(離線)其實考慮的應該是設計是否有問題,資料是不是載入太多,或是本地儲存的數據過多等等。我這邊做過本地資料庫的應用程式基本上也是鎖定介面的,因為需要展示的資料在一螢幕內不需要1s就能載入完成,不需要對各個元素去做控制。
你所說的凍結ui是什麼?我用網易新聞下載離線新聞時並不影響我使用其他功能啊!離線下載本來就要在後台非同步進行,終究要啟動執行緒來實現,不干擾其它活動。
現在軟體都是使用者體驗放第一位了,一定不能凍結UI啊,你要下載資料可以後台非同步下載。應該對使用者操作沒有影響的。你說的排隊讀寫資料是不是並發沒有做好導致堵塞了?
如果並發覺得慢的話,修改執行緒的優先權。