使用来自FLAG_ACTIVITY_NO_HISTORY启动的活动的startActivityForResult

时间:2016-04-05 08:04:47

标签: android startactivityforresult

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

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

我想使用startActivityForResult启动非州活动。

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

当关闭/回家/调用StartActivityForResult 时,应用程序将被“杀死”(已完成)。

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

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

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

    if (manager.getBackStackEntryCount() > 1){
        super.onBackPressed();
    }
    else{
        finish();
    }
}