com.android.internal.policy.DecorContext
2017-03-21 22:51
591 查看
异常:com.android.internal.policy.DecorContext cannot be cast to xxx.TaskInfoExamActivity
原因:
在android7.0开始DecorContext不能转换成activity。
要解决这种办法使用需要使用反射来处理原有代码。
解决办法:
正常情况:Activity activity =(Activity)view.getContext();
在android7.0 上述方法出错,要解决此问题,将上述方式给出调用如下方法即可:
调用示例:
原因:
在android7.0开始DecorContext不能转换成activity。
要解决这种办法使用需要使用反射来处理原有代码。
解决办法:
正常情况:Activity activity =(Activity)view.getContext();
在android7.0 上述方法出错,要解决此问题,将上述方式给出调用如下方法即可:
public static Activity getActivity(View view) { Activity activity = null; if (view.getContext().getClass().getName().contains("com.android.internal.policy.DecorContext")) { try { Field field = view.getContext().getClass().getDeclaredField("mPhoneWindow"); field.setAccessible(true); Object obj = field.get(view.getContext()); java.lang.reflect.Method m1 = obj.getClass().getMethod("getContext"); activity = (Activity) (m1.invoke(obj)); } catch (Exception e) { e.printStackTrace(); } } else { activity = (Activity) view.getContext(); } return activity; }
调用示例:
Activity activity = getAcitivty(view);
相关文章推荐
- 解决Android7.0 com.Android.internal.policy.DecorContext cast to activity(by 星空武哥)
- Android报错:has leaked window com.android.internal.policy.impl.PhoneWindow$Decor
- Android报错:has leaked window com.android.internal.policy.impl.PhoneWindow$Decor
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Activity has leaked window com.android.internal.policy.impl.PhoneWindow
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2c58b888 that was original
- Activity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorVie
- ERROR/WindowManager(***): Activity *** has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@*** that was ori
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- [Android开发-异常]xxxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- ERROR/WindowManager(***): Activity *** has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@*** that
- Activity has leaked window com.android.internal.policy.impl.PhoneWindow
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added here
- android Activity has leaked window com.android.internal.policy.impl.PhoneWindow$Deco...
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Internal app can not import com.android.internal.policy.impl?
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added here