博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何了解一个源码(或者第三方插件)的运行机制
阅读量:5846 次
发布时间:2019-06-18

本文共 822 字,大约阅读时间需要 2 分钟。

  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. 不定时持续更新

转载于:https://www.cnblogs.com/shortboy/p/5608155.html

你可能感兴趣的文章
jQuery+jsPlumb简易流程设计
查看>>
利用Solid Converter PDF提取Excel表格并打印
查看>>
MDN JavaScript重温笔记
查看>>
笔记本视频监控器
查看>>
就是一个表格
查看>>
Tomcat访问数据源 需要加 java:comp/env 前缀
查看>>
SDUT排序问题
查看>>
CakePHP 2.x CookBook 中文版 第三章 入门 之 CakePHP 的结构
查看>>
介绍2个免费生成手机端软件的网站
查看>>
Objective-C的算术表达式 .
查看>>
C语言的谜题
查看>>
RPC failed; result=28, HTTP code = 0
查看>>
gcc编译C++程序
查看>>
linux中nfs的自动挂载
查看>>
统一关闭域客户端防火墙服务/功能
查看>>
【编译打包】fastdfs-5.0.5-7.el7.centos.src.rpm
查看>>
expandablelistview open group scroll to top
查看>>
安装Java 8 ( 支持 Ubuntu 10.04 - Ubuntu 16.04 )
查看>>
人生是什么?——感悟2:绝望时候要相信自己
查看>>
我的友情链接
查看>>