本文整理汇总了Java中com.morgoo.droidplugin.hook.handle.PluginCallback类的典型用法代码示例。如果您正苦于以下问题:Java PluginCallback类的具体用法?Java PluginCallback怎么用?Java PluginCallback使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PluginCallback类属于com.morgoo.droidplugin.hook.handle包,在下文中一共展示了PluginCallback类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: onInstall
点赞 3
import com.morgoo.droidplugin.hook.handle.PluginCallback; //导入依赖的package包/类
@Override
protected void onInstall(ClassLoader classLoader) throws Throwable {
Object target = ActivityThreadCompat.currentActivityThread();
Class ActivityThreadClass = ActivityThreadCompat.activityThreadClass();
/*替换ActivityThread.mH.mCallback,拦截组件调度消息*/
Field mHField = FieldUtils.getField(ActivityThreadClass, "mH");
Handler handler = (Handler) FieldUtils.readField(mHField, target);
Field mCallbackField = FieldUtils.getField(Handler.class, "mCallback");
//*这里读取出旧的callback并处理*/
Object mCallback = FieldUtils.readField(mCallbackField, handler);
if (!PluginCallback.class.isInstance(mCallback)) {
PluginCallback value = mCallback != null ? new PluginCallback(mHostContext, handler, (Handler.Callback) mCallback) : new PluginCallback(mHostContext, handler, null);
value.setEnable(isEnable());
mCallbacks.add(value);
FieldUtils.writeField(mCallbackField, handler, value);
Log.i(TAG, "PluginCallbackHook has installed");
} else {
Log.i(TAG, "PluginCallbackHook has installed,skip");
}
}
开发者ID:amikey,
项目名称:DroidPlugin,
代码行数:22,
代码来源:PluginCallbackHook.java
示例2: setEnable
点赞 2
import com.morgoo.droidplugin.hook.handle.PluginCallback; //导入依赖的package包/类
@Override
public void setEnable(boolean enable, boolean reinstallHook) {
if (reinstallHook) {
try {
onInstall(null);
} catch (Throwable throwable) {
Log.i(TAG, "setEnable onInstall fail", throwable);
}
}
for (PluginCallback callback : mCallbacks) {
callback.setEnable(enable);
}
super.setEnable(enable,reinstallHook);
}
开发者ID:amikey,
项目名称:DroidPlugin,
代码行数:16,
代码来源:PluginCallbackHook.java