<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 功能設計 先把app常用的功能進行抽象,主要從Activity Fragment Service等控件進行考慮。 其次完善相關的工具類。主要從代碼封裝、迭代、可維護性等方面考慮。 ### 抽象 ### Activity的抽象 Activity抽象主要目的是簡化具體功能界面的工作量。主要通過代碼封裝的方式來達到效果。 同時需要處理網絡請求、UI刷新等操作 ### Fragment的抽象 Fragment的抽象與activity類似。但不同的是需要處理多個Fragment之間的互相調用,傳參方式也不太一樣。 ### 工具類 App需要一個管理Activity或者Fragment的工具類,對其做全局的操作(方法調用) 為了減少代碼的耦合度。不建議在Activity中直接加static引用。可以通過寫一些工具類間接的實現。 ? Activity中訪問網絡請求以及回調刷新UI是一件比較繁瑣的事兒。常規的做法是new一個Thread是傳入一個Handler對象,網絡請求完成以后sendMessage刷新。但是這種做法耦合度比較強,而且好多業務邏輯都需要在Activity中處理,代碼臃腫 ? ~~~ private Handler handler; protected void onCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); handler= new handler(){ publicvoid handlerMessage(){ if(msg.what== 1){ //do sth } } } } public class NetRunnable implementsRunnable{ privateHandler handler; publicNetRunnable(Handler handler){ this.handler= handler; } publicvoid run(){ //do sth 處理網絡等 Messagemsg = Message.obtain(); msg.what= 1; msg.obj= “網絡請求結果”; this.handler.sendMessage(msg); } } ~~~ 建議將網絡請求的代碼封裝一下, ?封裝后續 ### ActivityMgr 這個類的作用主要是保存app中所有正在運行的Activity的引用。 ? ~~~ private static Stack<BaseActivity>activities = new Stack<BaseActivity >; public static void push(BaseActivityactivity){ activities.push(activity); } public static void remove(BaseActivityactivity){ activities.remove(activity); } public class BaseActivity extends Activity public void onCreate(BundlesaveInstanceState){ ActivityMgr.push(this); } public void onDestroy(){ ActivityMgr.remove(this); } ~~~ 解析一下為什么onDestroy的時候采用remove方法而不是pop() 防止acitivty AB,?? A啟動 B? 如果此時A#finish調用Stack#pop則會把B的引用移除 ? Fragment的工具類先略過
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看