- 首先得知道那个插件“如何运行”
- 因为不知道怎么运行,就根本不知道怎么“启动”,怎么“结束”
- 举个例子:android-Ultra-Pull-To-Refresh
- 要求必须要传入回调---ptrFrame.setPtrHandler(new PtrHandler() )
- 启动要执行“ptrFrame.autoRefresh();”
- 从“启动的代码”出发找你的“回调方法”(不过这个只是针对一些结构比较简单的插件)
- 找到就知道,
- 回调前会执行些什么,
- 功能触发条件
- 例子:
- AsyncTask
- 从“启动的代码”出发“类创建”再到 “你的处理方法”(对于一些结构类似“消息队列”)
- 例子:Handler的消息机制(或者线程间通信)
- 启动的代码
childHandler.post(new Runnable() { @Override public void run() { }});
- 创建时
Handler.Callback callback = new Handler.Callback(){ @Override public boolean handleMessage(Message msg) { return false; }}; Looper.prepare();Handler childHandler = new Handler(callback);Looper.loop();
- 你的处理方法,
mCallback.handleMessage(msg); 或者
handleMessage(msg);
- 因为有looper一直在遍历内部的MessageQuese,
- 解决:
- 所以从“启动代码”去到某个位置就断开了。
- 不知名就去到处理方法
时间: 2024-12-25 13:03:51