Skip to content

Commit afb4e1b

Browse files
committed
add(DevSimple): 新增 DevSimple Activity Lifecycle 监听
Former-commit-id: 6bdf8d9
1 parent 8767105 commit afb4e1b

File tree

5 files changed

+101
-43
lines changed

5 files changed

+101
-43
lines changed

lib/DevApp/src/main/java/dev/utils/app/assist/lifecycle/current/ThisLifecycleManager.java

-38
This file was deleted.

lib/DevSimple/DevSimple/src/main/java/dev/simple/app/base/BaseActivity.kt

+8-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import androidx.databinding.ViewDataBinding
66
import dev.DevUtils
77
import dev.base.expand.content.DevBaseContentMVVMActivity
88
import dev.simple.app.BaseAppViewModel
9+
import dev.simple.app.base.lifecycle.IActivityLifecycle
10+
import dev.simple.app.base.lifecycle.LifecycleManager
911
import dev.simple.app.base.simple.ISimpleAgile
1012
import dev.simple.app.controller.BaseKeyEventController
1113
import dev.simple.app.controller.BaseUIController
@@ -21,7 +23,7 @@ import dev.utils.common.ClassUtils
2123
abstract class BaseActivity<VDB : ViewDataBinding, VM : BaseAppViewModel>(
2224
private val vmType: ActivityVMType = ActivityVMType.ACTIVITY
2325
) : DevBaseContentMVVMActivity<VDB, VM>(),
24-
IController, ISimpleAgile {
26+
IController, ISimpleAgile, IActivityLifecycle {
2527

2628
// Activity
2729
open val mActivity: AppCompatActivity get() = this
@@ -43,6 +45,11 @@ abstract class BaseActivity<VDB : ViewDataBinding, VM : BaseAppViewModel>(
4345
// 初始化 UI 样式
4446
uiController.initialize(this)
4547
super.onCreate(savedInstanceState)
48+
// 是否监听生命周期 ( 实现了则表示需要监听 )
49+
activityLifecycleIMPL()?.let { impl ->
50+
// 添加 Activity 生命周期通知事件
51+
LifecycleManager.activity().addListener(this, impl)
52+
}
4653
// 内部初始化前调用
4754
simpleInit()
4855
// 内部初始化
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package dev.simple.app.base.lifecycle
2+
3+
import dev.utils.app.assist.lifecycle.AbstractActivityLifecycle
4+
import dev.utils.app.assist.lifecycle.fragment.AbstractFragmentLifecycle
5+
6+
/**
7+
* detail: 生命周期接口
8+
* @author Ttt
9+
*/
10+
interface ILifecycle {
11+
12+
// /**
13+
// * 是否监听生命周期
14+
// * @return `true` yes, `false` no
15+
// */
16+
// fun isRegisterLifecycleCallbacks(): Boolean = false
17+
}
18+
19+
/**
20+
* detail: Activity 生命周期接口
21+
* @author Ttt
22+
*/
23+
interface IActivityLifecycle : ILifecycle {
24+
25+
/**
26+
* 获取 Activity LifecycleCallbacks 抽象类实现类
27+
* @return AbstractActivityLifecycle?
28+
*/
29+
fun activityLifecycleIMPL(): AbstractActivityLifecycle? = null
30+
}
31+
32+
/**
33+
* detail: Fragment 生命周期接口
34+
* @author Ttt
35+
*/
36+
interface IFragmentLifecycle : ILifecycle {
37+
38+
/**
39+
* 获取 Fragment LifecycleCallbacks 抽象类实现类
40+
* @return AbstractFragmentLifecycle?
41+
*/
42+
fun fragmentLifecycleIMPL(): AbstractFragmentLifecycle? = null
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package dev.simple.app.base.lifecycle
2+
3+
import dev.utils.app.assist.lifecycle.current.ThisActivityLifecycleAssist
4+
5+
/**
6+
* detail: 内部生命周期管理类
7+
* @author Ttt
8+
*/
9+
internal class LifecycleManager private constructor() {
10+
11+
private object Holder {
12+
val instance = LifecycleManager()
13+
}
14+
15+
companion object {
16+
17+
private fun manager(): LifecycleManager {
18+
return Holder.instance
19+
}
20+
21+
/**
22+
* 获取当前 Activity 生命周期辅助类
23+
* @return ThisActivityLifecycleAssist
24+
*/
25+
fun activity(): ThisActivityLifecycleAssist = manager().mActivityAssist
26+
}
27+
28+
// ==========
29+
// = 内部方法 =
30+
// ==========
31+
32+
// 当前 Activity 生命周期辅助类
33+
private val mActivityAssist by lazy {
34+
ThisActivityLifecycleAssist().registerActivityLifecycleCallbacks()
35+
}
36+
}

lib/DevSimple/DevSimple/src/main/java/dev/simple/app/controller/inter/IUIController.kt

+14-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.view.View
77
import androidx.lifecycle.LifecycleOwner
88
import dev.base.utils.assist.DevBaseContentAssist
99
import dev.utils.app.assist.WindowAssist
10-
import dev.utils.common.able.Operatorable
1110

1211
/**
1312
* detail: UI 基类控制器接口
@@ -17,10 +16,9 @@ interface IUIController {
1716

1817
/**
1918
* Activity onCreate 创建之前触发
20-
* @return Operatorable.OperatorByParam3<Void, Activity, WindowAssist, IUIController>
19+
* @return [onCreateBeforeMethod]
2120
*/
22-
fun onCreateBefore(): Operatorable.OperatorByParam3<Void, Activity,
23-
WindowAssist, IUIController>? = null
21+
fun onCreateBefore(): onCreateBeforeMethod? = null
2422

2523
/**
2624
* [DevBaseContentAssist] 是否安全处理
@@ -117,4 +115,16 @@ interface IUIController {
117115
inflater: LayoutInflater,
118116
owner: LifecycleOwner,
119117
): View? = null
118+
}
119+
120+
/**
121+
* detail: Activity onCreate 创建之前触发
122+
* @author Ttt
123+
*/
124+
interface onCreateBeforeMethod {
125+
fun execute(
126+
activity: Activity,
127+
window: WindowAssist,
128+
control: IUIController
129+
)
120130
}

0 commit comments

Comments
 (0)