- 首先得知道那个插件“如何运行”
- 因为不知道怎么运行,就根本不知道怎么“启动”,怎么“结束”
- 举个例子: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,
- 解决:
- 所以从“启动代码”去到某个位置就断开了。
- 不知名就去到处理方法
- 不定时持续更新