>  Q&A  >  본문

android-ui - Android app离线模式,需不需要冻结UI?

大家好,最近在开发公司app 的离线下载数据功能。就像:网易新闻,腾讯新闻中的离线模式一样。

功能上都实现了。想请教一下资深的安卓开发工程师,在下载离线数据的时候,需不需要冻结UI(在下载完成之前不让用户使用app的其他功能)?因为测试后,发现不冻结UI,程序也能正常使用,只是慢了点(应该是排队读写数据引起的)。但是上面提到的二个app都冻结了UI ,是有其他的原因吗?

天蓬老师天蓬老师2766일 전427

모든 응답(4)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 17:15:50

    이른바 고정된 UI는 데이터가 로드되기 전에 모든 작업을 금지한다는 의미인 것 같습니다. 오프라인인 경우 데이터가 로컬로 로드되면 데이터 로드 속도가 매우 빨라야 합니다. 빠르지만 비동기식으로 수행해야 합니다. 전체 인터페이스에 대해 데이터가 로드될 때까지 작동할 수 없는 요소가 있는 경우 해당 요소를 비활성화하는 것이 좋습니다. 물론, 사용 가능한 다른 요소 컨트롤을 비활성화할 필요는 없습니다. 질문자는 실제로 데이터가 로드된 후에는 대부분이 비활성화된다고 말했습니다. 우선 이렇게 하면 데이터가 로드된 후에만 수행할 수 있는 작업과 수행할 수 있는 작업을 하나씩 확인하는 지루한 과정을 피할 수 있습니다. 그렇지 않습니다. 통합된 차단을 통해 많은 작업이 절약되고, 경험에 영향을 주지 않고 로딩 속도가 빨라집니다.

    물론, 데이터가 느리게 로딩되는 경우 가장 먼저 해야 할 일은 UI를 정지시키지 않는 것입니다. (오프라인) 10초 이내에 데이터를 로딩할 수 없다면 실제로 문제가 있는지를 고려해야 합니다. 디자인, 데이터가 너무 많이 로드되었는지, 로컬인지 여부, 데이터가 너무 많이 저장되었는지 등. 여기서 만든 로컬 데이터베이스 애플리케이션은 기본적으로 인터페이스를 잠급니다. 표시해야 하는 데이터를 1초 이내에 한 화면에 로드할 수 있고 각 요소를 제어할 필요가 없기 때문입니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:15:50

    겨울왕국 UI가 무슨 뜻인가요? NetEase 뉴스를 사용하여 오프라인 뉴스를 다운로드할 때 다른 기능 사용에는 영향을 미치지 않습니다! 오프라인 다운로드는 백그라운드에서 비동기적으로 수행되어야 하며, 다른 활동을 방해하지 않고 이를 구현하려면 스레드가 시작되어야 합니다.

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 17:15:50

    요즘 소프트웨어는 사용자 경험을 최우선으로 생각합니다. UI를 정지해서는 안 됩니다. 데이터를 다운로드하려면 백그라운드에서 비동기적으로 다운로드하면 됩니다. 사용자 작업에는 영향이 없어야 합니다. 당신이 말하는 데이터 읽기 및 쓰기 대기열이 동시성으로 제대로 수행되지 않아 혼잡이 발생합니까?

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:15:50

    동시성이 느리게 느껴지면 스레드 우선순위를 변경하세요.

    회신하다
    0
  • 취소회신하다