0

我的应用程序由一个服务(它实现一个状态机,响应 UI 和网络事件)和几个状态活动组成,对应于状态机的状态。

状态更改用于FLAG_ACTIVITY_NO_HISTORY启动状态活动,以便用户无法绕过状态机并“返回”到“错误”的活动。这使得“返回”按钮退出应用程序。(当应用程序重新启动时,该状态仍然存在。)

我想用来startActivityForResult启动一个非状态活动。

如我所料,当启动非状态活动时,父状态活动将停止。

当非状态活动调用finish()时,父状态活动被销毁,而不是被(重新)启动,甚至在调用父状态之前onActivityResult

这是因为父活动是使用 FLAG_ACTIVITY_NO_HISTORY 启动的吗?

4

2 回答 2

2

是的,我发现这是问题的原因。

于 2016-04-29T10:18:58.603 回答
1

我遇到了同样的问题,Adeel Turk 解决了它!谢谢你们!

当切换出/按下主页/调用 StartActivityForResult 时发生,应用程序将被“杀死”(完成)。

只需将其添加到第二个 Activity.(MainActivity)

顺便说一句,我的第一个是 startActivity(带模式锁定)。第二个是 MainActivity()

@Override
public void onBackPressed(){
    FragmentManager manager = getSupportFragmentManager();

    if (manager.getBackStackEntryCount() > 1){
        super.onBackPressed();
    }
    else{
        finish();
    }
}
于 2017-02-26T15:28:13.907 回答