Мой стек активности выглядит следующим образом:
MainActivity> HomeActivity> MapFragment
Когда я покидаю свое приложение из MapFragment в режиме разработки, я могу снова войти в приложение и мой метод onResume()
будет называться. Поэтому я могу продолжить с того места, где остановился.
Когда я оставляю свое приложение из MapFragment в производственном режиме (установка приложения из Google Play), а затем захожу в приложение, вместо этого будет вызываться onCreate()
. Поэтому фрагмент теряет свое состояние, и onViewCreated фрагмента будет вызван снова и разрушит пользовательский интерфейс.
Почему это поведение отличается в производственном режиме? Как я могу просто возобновить мой фрагмент в onResume()
при возврате к нему, как в режиме разработки?
Мой код такой:
MainActivity
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
val intent = Intent(this, HomeActivity::class.java)
startActivity(intent)
return finish()
}
HomeActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
MapFragment
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initialiseFcmToken()
initialiseProfileFragment()
initialiseUser()
}
override fun onResume() {
super.onResume()
PS: при повторном входе в приложение через «Недавние приложения» нет мой телефон, он успешно возобновляет фрагмент. Но если я снова войду в приложение, щелкнув значок приложения на панели запуска моего телефона, вместо этого будет вызвано onCreate()
.