Issue summary
getLifecycle().getCurrentState() gave me wrong state.
Environment (integrated library, OS, etc)
- compileSdkVersion : 27
- targetSdkVersion : 27
- support library : 27.1.1
Expected behavior
- onCreate() -> CREATED
- onStart() -> STARTED
- onResume() -> RESUMED
- onPause() -> STARTED
- onStop() -> CREATED
- onDestroy() -> DESTROYED
Actual behavior
- onCreate : INITIALIZED
- onStart : CREATED
- onResume : STARTED
- onPause : STARTED
- onStop : CREATED
- onDestroy : DESTROYED
Issue detail
I tried using below code. I searched google but no one thinks strangely about this. Am I something missing?
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.i(MainActivity::class.java.name, "onCreate : " + lifecycle.currentState.name)
    }
    override fun onStart() {
        super.onStart()
        Log.i(MainActivity::class.java.name, "onStart : " + lifecycle.currentState.name)
    }
    override fun onResume() {
        super.onResume()
        Log.i(MainActivity::class.java.name, "onResume : " + lifecycle.currentState.name)
    }
    override fun onPause() {
        super.onPause()
        Log.i(MainActivity::class.java.name, "onPause : " + lifecycle.currentState.name)
    }
    override fun onStop() {
        super.onStop()
        Log.i(MainActivity::class.java.name, "onStop : " + lifecycle.currentState.name)
    }
    override fun onDestroy() {
        super.onDestroy()
        Log.i(MainActivity::class.java.name, "onDestroy : " + lifecycle.currentState.name)
    }
}
 
                        
Your actual behaviour is the expected behaviour if you look at the documentation: https://developer.android.com/topic/libraries/architecture/lifecycle
Think of the states as nodes of a graph and events as the edges between these nodes.