2016-04-05 20 views
0

推出我的应用程序由服务(它实现了一个状态机,响应UI和网络事件)和一些国家的活动,相应的状态机的状态活动使用startActivityForResult。从与FLAG_ACTIVITY_NO_HISTORY

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

我想用startActivityForResult推出了非国家行为。

当非国家活动启动时,父状态的活动停止,因为我期望的那样。

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

这是因为父活动与FLAG_ACTIVITY_NO_HISTORY推出?

回答

2

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

+2

你可以使用后退按下的功能来限制用户不要绕过状态机并回到“错误”活动 –

0

我遇到了同样的问题,阿迪尔土耳其人解决它!感谢你们俩!

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

只需添加这第二活动。(MainActivity)

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

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

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

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