package cn.flightfeather.thirdappmodule.module.base
|
|
import android.app.Activity
|
import android.app.Dialog
|
import android.arch.lifecycle.Lifecycle
|
import android.arch.lifecycle.LifecycleObserver
|
import android.arch.lifecycle.OnLifecycleEvent
|
import android.content.Context
|
import android.support.v4.app.FragmentActivity
|
|
/**
|
* @author riku
|
* Date: 2020/8/21
|
* 添加对话框显示隐藏时对activity生命周期的判断
|
*/
|
class BaseDialog(private val mContext: Context) : Dialog(mContext), LifecycleObserver {
|
|
init {
|
if (mContext is FragmentActivity) {
|
(mContext as FragmentActivity).lifecycle.addObserver(this)
|
}
|
}
|
|
|
override fun dismiss() {
|
if (mContext is Activity && !(mContext as Activity).isFinishing) {
|
super.dismiss()
|
}
|
}
|
|
override fun show() {
|
if (mContext is Activity && !(mContext as Activity).isFinishing) {
|
super.show()
|
}
|
}
|
|
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
fun onDestroy() {
|
if (isShowing) {
|
dismiss()
|
}
|
}
|
}
|