答案 0 :(得分:7)
onStop()
。
因此,当按下后退按钮时,实际上会调用onStop()
。
轻松检查, - 需要在onStop()/onStart()
回调中放置断点并运行调试会话。
但是请注意,当前活动的onStop()
很可能会被调用到您正在切换的活动onStart()/onResume()
之后。
因此,我认为您正在尝试更新第1个活动的onStop()
中的内容,并期望在第2个活动的onStart()
中获取更新的数据,从而导致错误。
答案 1 :(得分:0)
如果在创建新实例时仍需要为活动实例调用这些实例,则可以使用this hacky solution。 只需在#doStopOperation()和#doDestroyOperation()中实现您的逻辑,而不是#onStop()和#onDestroy() - 并确保从被覆盖的方法中调用super#onStop()和super#onDestroy()。显然,在扩展此活动时,您不需要扩展AppCompatActivity,而是可以使用常规活动。这对我来说在生产构建中很有用,所以希望它会有所帮助。
我猜你也可以写一个计时器hack来调用 stop 和 destroy ,即使没有创建新实例,但这取决于你。
答案 2 :(得分:-4)