按顺序从两个按钮调用两个活动是否正常

时间:2012-12-07 15:34:07

标签: android button android-activity start-activity

我不知道如何恰当地说出这个问题所以让我解释一下。 我注意到在android平台上,当你按快速顺序按下一个活动中的两个按钮时(在活动有机会离开屏幕之前按一个按钮然后另一个按钮),一个接一个地调用两个活动。当它发生时它是不可见的但是如果你按下后退按钮,那么用第二个按钮调用的活动将离开(完成),并且第一个按钮调用的活动会显示出来。您必须再次返回到调用活动。因此,您必须按两次才能进入活动2的父活动。

所以我想知道这对其他人是否有问题,如果是这样,你会如何解决这个问题。或者你认为这不是一个问题。

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微秒)将被触发而另一个仍然会发送意图,但是在第一次激活的活动返回或应用程序死亡之前它不会触发。