zoukankan      html  css  js  c++  java
  • 如何了解一个源码(或者第三方插件)的运行机制

    1. 首先得知道那个插件“如何运行”
      1. 因为不知道怎么运行,就根本不知道怎么“启动”,怎么“结束”
      2. 举个例子:android-Ultra-Pull-To-Refresh
        1. 要求必须要传入回调---ptrFrame.setPtrHandler(new PtrHandler() )
        2. 启动要执行“ptrFrame.autoRefresh();”
    2. 从“启动的代码”出发找你的“回调方法”(不过这个只是针对一些结构比较简单的插件)
      1. 找到就知道,
        1. 回调前会执行些什么,
        2. 功能触发条件
      2. 例子:
        1. AsyncTask
    3. 从“启动的代码”出发“类创建”再到 “你的处理方法”(对于一些结构类似“消息队列”)
      1. 例子:Handler的消息机制(或者线程间通信)
        1. 启动的代码
          childHandler.post(new Runnable() {
          @Override
          public void run() {

          }
          });
        2. 创建时
          Handler.Callback callback =  new Handler.Callback(){

          @Override
          public boolean handleMessage(Message msg) {
          return false;
          }
          };

          Looper.prepare();
          Handler childHandler = new Handler(callback);
          Looper.loop();


        3. 你的处理方法,
          mCallback.handleMessage(msg);
          或者
          handleMessage(msg);
      2. 因为有looper一直在遍历内部的MessageQuese,
        1. 解决:
          1. 所以从“启动代码”去到某个位置就断开了。
          2. 不知名就去到处理方法
    4. 不定时持续更新
  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/shortboy/p/5608155.html
Copyright © 2011-2022 走看看