其实就是5.0升级后,方法参数变了
/**
* Convert a translucent themed Activity
* {@link android.R.attr#windowIsTranslucent} back from opaque to
* translucent following a call to {@link #convertActivityFromTranslucent()}
* .
* <p>
* Calling this allows the Activity behind this one to be seen again. Once
* all such Activities have been redrawn
* <p>
* This call has no effect on non-translucent activities or on activities
* with the {@link android.R.attr#windowIsFloating} attribute.
*/
@SuppressLint("NewApi")
public void convertActivityToTranslucent() {
try {
Class<?>[] classes = Activity.class.getDeclaredClasses();
Class<?> translucentConversionListenerClazz = null;
for (Class clazz : classes) {
if (clazz.getSimpleName().contains(
"TranslucentConversionListener")) {
translucentConversionListenerClazz = clazz;
}
}
Method[] methods = Activity.class.getDeclaredMethods();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.L) {
Method method = Activity.class.getDeclaredMethod(
"convertToTranslucent",
translucentConversionListenerClazz);
method.setAccessible(true);
method.invoke(mActivity, new Object[] { null });
} else {
Method method = Activity.class.getDeclaredMethod(
"convertToTranslucent",
translucentConversionListenerClazz,
ActivityOptions.class);
method.setAccessible(true);
method.invoke(mActivity, new Object[] { null, null });
}
} catch (Throwable t) {
t.printStackTrace();
}
}