zoukankan      html  css  js  c++  java
  • Code Fragment-UI加载策略之-可视者优先加载

    通常情况

    • 通常程序的UI不太复杂,我们会直接加载这些UI信息
    复杂的UI
    • 加载的元素就相对多一些。
    • 加载的数据相对多。
    • 因为UI元素和数据元素都比较多,加载的时间相对多。
    可视者优先加载
    • 不是默认的加载顺序,而是有选择的加载一些首先用户看到的UI,再去加载暂时没有看到的。
    • 例如1:
      • 当Launcher启动的时候,在桌面上会有默认的5个屏幕的widget UI,通常的一般思考是从左到右,依次加载,但是,我们可以首先加载用户所看到的当前屏,也就是说首先加载当前页,然后加载第1,2,4,5页。
      • 一般的加载方式

      • Launcher实际的加载方式

      • 加载相关的code处理
        • // once for the current screen
          for (int i = 0; i < N; i++) {
          	final LauncherAppWidgetInfo widget = sAppWidgets.get(i);
          	if (widget.screen == currentScreen) {//首先加载当前页
          		mHandler.post(new Runnable() {
          			public void run() {
          				Callbacks callbacks = tryGetCallbacks(oldCallbacks);
          				if (callbacks != null) {
          					callbacks.bindAppWidget(widget);
          				}
          			}
          		});
          	}
          }
          // once for the other screens
          for (int i = 0; i < N; i++) {//再根据顺序,从第1页开始加载。
          	final LauncherAppWidgetInfo widget = sAppWidgets.get(i);
          	if (widget.screen != currentScreen) {
          		mHandler.post(new Runnable() {
          			public void run() {
          				Callbacks callbacks = tryGetCallbacks(oldCallbacks);
          				if (callbacks != null) {
          					callbacks.bindAppWidget(widget);
          				}
          			}
          		});
          	}
          }
    • 例如2
      • 当Launcher程序启动的时候,会先判断,是在桌面还是menu(所有应用所在屏)这一屏,如果退出前在桌面,那么先加载桌面相关的,然后再加载menu。如果退出前记录的位置是在menu,那么先加载menu,后加载桌面。
      • 图示:
        • 情况1

        • 情况2

      • code:
        • if (loadWorkspaceFirst) {//step1,load the a
              loadAndBindWorkspace();
          } else {
              loadAndBindAllApps();
          }
          ....
          if (loadWorkspaceFirst) {//step2,load the b 
          	loadAndBindAllApps();
          } else {
              loadAndBindWorkspace();
          }

  • 相关阅读:
    HDU Railroad (记忆化)
    HDU 1227 Fast Food
    HDU 3008 Warcraft
    asp vbscript 检测客户端浏览器和操作系统(也可以易于升级到ASP.NET)
    Csharp 讀取大文本文件數據到DataTable中,大批量插入到數據庫中
    csharp 在万年历中计算显示农历日子出错
    csharp create ICS file extension
    CSS DIV Shadow
    DataTable search keyword
    User select fontface/color/size/backgroundColor设置 字体,颜色,大小,背景色兼容主流浏览器
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3206442.html
Copyright © 2011-2022 走看看