我不知道如何恰当地说出这个问题所以让我解释一下。 我注意到在android平台上,当你按快速顺序按下一个活动中的两个按钮时(在活动有机会离开屏幕之前按一个按钮然后另一个按钮),一个接一个地调用两个活动。当它发生时它是不可见的但是如果你按下后退按钮,那么用第二个按钮调用的活动将离开(完成),并且第一个按钮调用的活动会显示出来。您必须再次返回到调用活动。因此,您必须按两次才能进入活动2的父活动。
所以我想知道这对其他人是否有问题,如果是这样,你会如何解决这个问题。或者你认为这不是一个问题。
答案 0 :(得分:0)
您可以在finish()
后startActivity(your_intent);
拨打您要离开的活动,然后转到下一个活动,这样您就不必按两次即可转到它的父活动。
答案 1 :(得分:0)
我已经想出如何传递这个问题。我有一个基本活动类,我的应用程序中的每个其他活动都继承自。我重写
onResume with:
@Override
protected void onResume()
{
super.onResume();
setCanStartNewActivity(true);
}
和startActivityForResult:
@Override
public void startActivityForResult(Intent intent, int requestCode)
{
//Does not allow starting a new activity unless previous activity returned
//This is a trick to stop multiple simultaneous button presses starting multiple
//activities simultaneously.
if(!canStartNewActivity)
return;
setCanStartNewActivity(false);
super.startActivityForResult(intent, requestCode);
}
这基本上确保只能按下按钮启动一个新活动。如果你同时放开两个按钮,只有最早释放的按钮(甚至是10微秒)将被触发而另一个仍然会发送意图,但是在第一次激活的活动返回或应用程序死亡之前它不会触发。