我的应用程序由一个服务(它实现一个状态机,响应 UI 和网络事件)和几个状态活动组成,对应于状态机的状态。
状态更改用于FLAG_ACTIVITY_NO_HISTORY
启动状态活动,以便用户无法绕过状态机并“返回”到“错误”的活动。这使得“返回”按钮退出应用程序。(当应用程序重新启动时,该状态仍然存在。)
我想用来startActivityForResult
启动一个非状态活动。
如我所料,当启动非状态活动时,父状态活动将停止。
当非状态活动调用finish()
时,父状态活动被销毁,而不是被(重新)启动,甚至在调用父状态之前onActivityResult
。
这是因为父活动是使用 FLAG_ACTIVITY_NO_HISTORY 启动的吗?