|
@@ -51,19 +51,26 @@ public abstract class BaseDialog {
|
|
private WeakReference<View> dialogView;
|
|
private WeakReference<View> dialogView;
|
|
|
|
|
|
public static void init(Context context) {
|
|
public static void init(Context context) {
|
|
|
|
+ if (context instanceof Activity) {
|
|
|
|
+ initActivityContext((Activity) context);
|
|
|
|
+ }
|
|
ActivityLifecycleImpl.init(context, new ActivityLifecycleImpl.onActivityResumeCallBack() {
|
|
ActivityLifecycleImpl.init(context, new ActivityLifecycleImpl.onActivityResumeCallBack() {
|
|
@Override
|
|
@Override
|
|
public void getActivity(Activity activity) {
|
|
public void getActivity(Activity activity) {
|
|
- try {
|
|
|
|
- contextWeakReference = new WeakReference<>(activity);
|
|
|
|
- rootFrameLayout = new WeakReference<>((FrameLayout) activity.getWindow().getDecorView());
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- error("DialogX.init: 初始化异常,找不到Activity的根布局");
|
|
|
|
- }
|
|
|
|
|
|
+ initActivityContext(activity);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static void initActivityContext(Activity activity) {
|
|
|
|
+ try {
|
|
|
|
+ contextWeakReference = new WeakReference<>(activity);
|
|
|
|
+ rootFrameLayout = new WeakReference<>((FrameLayout) activity.getWindow().getDecorView());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ error("DialogX.init: 初始化异常,找不到Activity的根布局");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
protected static void log(Object o) {
|
|
protected static void log(Object o) {
|
|
if (DEBUGMODE) Log.i(">>>", o.toString());
|
|
if (DEBUGMODE) Log.i(">>>", o.toString());
|
|
}
|
|
}
|
|
@@ -344,7 +351,7 @@ public abstract class BaseDialog {
|
|
}
|
|
}
|
|
|
|
|
|
public static void recycleDialog(Activity activity) {
|
|
public static void recycleDialog(Activity activity) {
|
|
- if (DialogX.implIMPLMode == DialogX.IMPL_MODE.WINDOW){
|
|
|
|
|
|
+ if (DialogX.implIMPLMode == DialogX.IMPL_MODE.WINDOW) {
|
|
if (runningDialogList != null) {
|
|
if (runningDialogList != null) {
|
|
CopyOnWriteArrayList<BaseDialog> copyOnWriteList = new CopyOnWriteArrayList<>(runningDialogList);
|
|
CopyOnWriteArrayList<BaseDialog> copyOnWriteList = new CopyOnWriteArrayList<>(runningDialogList);
|
|
for (BaseDialog baseDialog : copyOnWriteList) {
|
|
for (BaseDialog baseDialog : copyOnWriteList) {
|