Skip to content

Commit 05eab04

Browse files
authored
Update BaseDialog.java
修复 BaseDialog 的几个 Bug
1 parent 105d420 commit 05eab04

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

base/src/main/java/com/hjq/base/BaseDialog.java

+19-11
Original file line numberDiff line numberDiff line change
@@ -949,16 +949,17 @@ public void onActivityStarted(@NonNull Activity activity) {}
949949
@Override
950950
public void onActivityResumed(@NonNull Activity activity) {
951951
if (mDialog != null && mDialog.isShowing()) {
952-
// 还原 Dialog 动画样式(这里必须要使用延迟设置,否则有一定几率会出现)
953-
mDialog.post(() -> mDialog.setWindowAnimations(mDialogAnim));
952+
// 还原 Dialog 动画样式(这里必须要使用延迟设置,否则还是有一定几率会出现)
953+
mDialog.postDelayed(() -> {
954+
if (mDialog != null && mDialog.isShowing()) {
955+
mDialog.setWindowAnimations(mDialogAnim);
956+
}
957+
}, 100);
954958
}
955959
}
956960

957961
@Override
958-
public void onActivityPaused(@NonNull Activity activity) {}
959-
960-
@Override
961-
public void onActivityStopped(@NonNull Activity activity) {
962+
public void onActivityPaused(@NonNull Activity activity) {
962963
if (mDialog != null && mDialog.isShowing()) {
963964
// 获取 Dialog 动画样式
964965
mDialogAnim = mDialog.getWindowAnimations();
@@ -967,15 +968,18 @@ public void onActivityStopped(@NonNull Activity activity) {
967968
}
968969
}
969970

971+
@Override
972+
public void onActivityStopped(@NonNull Activity activity) {}
973+
970974
@Override
971975
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {}
972976

973977
@Override
974978
public void onActivityDestroyed(@NonNull Activity activity) {
975979
if (mActivity == activity) {
976980
if (mDialog != null) {
977-
mDialog.removeOnShowListener(null);
978-
mDialog.removeOnDismissListener(null);
981+
mDialog.removeOnShowListener(this);
982+
mDialog.removeOnDismissListener(this);
979983
if (mDialog.isShowing()) {
980984
mDialog.dismiss();
981985
}
@@ -989,13 +993,17 @@ public void onActivityDestroyed(@NonNull Activity activity) {
989993
@Override
990994
public void onShow(BaseDialog dialog) {
991995
mDialog = dialog;
992-
mActivity.getApplication().registerActivityLifecycleCallbacks(this);
996+
if (mActivity != null) {
997+
mActivity.getApplication().registerActivityLifecycleCallbacks(this);
998+
}
993999
}
9941000

9951001
@Override
9961002
public void onDismiss(BaseDialog dialog) {
9971003
mDialog = null;
998-
mActivity.getApplication().unregisterActivityLifecycleCallbacks(this);
1004+
if (mActivity != null) {
1005+
mActivity.getApplication().unregisterActivityLifecycleCallbacks(this);
1006+
}
9991007
}
10001008
}
10011009

@@ -1249,4 +1257,4 @@ public interface OnKeyListener {
12491257
*/
12501258
boolean onKey(BaseDialog dialog, KeyEvent event);
12511259
}
1252-
}
1260+
}

0 commit comments

Comments
 (0)