Toast.makeText(this, “反射对象”, Toast.LENGTH_SHORT).show();
只是把显示任务加入到队列中,并非直接就显示了,如果想手动控制Toast直接显示,则调用以下工具类。
void ToastOpen(Toast toast) {
try {
//从Toast对象获取mTN变量
Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
//从TN对象获取show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
//调用show方法显示Toast显示提示框
method.invoke(obj, null);
} catch (Exception e) {
}
}
Toast关闭工具
void ToastClose(Toast toast) {
try {
//从Toast对象获取mTN变量
Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
//从TN对象获取show方法
Method method = obj.getClass().getDeclaredMethod("hide", null);
//调用show方法关闭Toast显示提示框
method.invoke(obj, null);
} catch (Exception e) {
}
}