1. Status related classes
package com. study. state
class Activity {
companion object {
val onCreateState = OnCreateState ( )
val onStartState = OnStartState ( )
val onResumeState = OnResumeState ( )
}
var activityState: ActivityState =
OnCreateState ( )
set ( value) {
field = value
activityState. activity = this
}
fun onCreate ( ) {
activityState? . onCreate ( )
}
fun onStart ( ) {
activityState? . onStart ( )
}
fun onResume ( ) {
activityState? . onResume ( )
}
}
package com. study. state
abstract class ActivityState {
var activity: Activity? = null
abstract fun onCreate ( )
abstract fun onStart ( )
abstract fun onResume ( )
}
package com. study. state
class OnCreateState : ActivityState ( ) {
override fun onCreate ( ) {
println ( "当前Activity状态onCreate" )
}
override fun onStart ( ) {
activity? . activityState = Activity. onStartState
}
override fun onResume ( ) {
activity? . activityState = Activity. onResumeState
}
}
package com. study. state
class OnResumeState: ActivityState ( ) {
override fun onCreate ( ) {
activity? . activityState = Activity. onCreateState
}
override fun onStart ( ) {
activity? . activityState = Activity. onStartState
}
override fun onResume ( ) {
println ( "当前Activity状态onResume" )
}
}
package com. study. state
class OnStartState: ActivityState ( ) {
override fun onCreate ( ) {
activity? . activityState = Activity. onCreateState
}
override fun onStart ( ) {
println ( "当前Activity状态onStart" )
}
override fun onResume ( ) {
activity? . activityState = Activity. onResumeState
}
}
Second, the main program call
package com. study. state
fun main ( ) {
val activity = Activity ( )
activity. activityState = OnCreateState ( )
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
activity. onStart ( ) ;
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
activity. onResume ( )
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
}
Three, running results
Four, design pattern learning summary
After persisting in learning a time-sensitive design pattern, I have a deeper understanding of design patterns. Thank you very much for providing learning resources.