从使用FLAG_activity_NO_HOSTORY启动的活动中使用startActivityForResult



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

状态更改使用FLAG_ACTIVITY_NO_HISTORY来启动状态活动,这样用户就不能绕过状态机"返回"到"错误"的活动。这使得"后退"按钮退出应用程序。(当应用程序重新启动时,状态会持续。)

我想使用startActivityForResult来启动一个非国家活动。

当非状态活动启动时,父状态活动将停止,正如我所期望的那样。

当非状态活动调用finish()时,即使在调用父级的onActivityResult之前,父级状态活动也会被销毁,而不是(重新)启动。

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

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

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

当关闭/按下主页/调用StartActivityForResult时发生,应用程序将被"杀死"(完成)。

只需将其添加到第二个"活动"中即可。(主要活动)

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

@Override
public void onBackPressed(){
    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() > 1){
        super.onBackPressed();
    }
    else{
        finish();
    }
}

相关内容

  • 没有找到相关文章

最新更新