0

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

所以我想知道这对其他人来说是否是一个问题,如果是这样,你将如何解决这个问题。或者你认为这不是什么大问题。

4

2 回答 2

0

您可以在此finish()之后调用startActivity(your_intent);您要离开的活动完成并进入下一个活动,因此您不必按两次即可到达它的父活动。

于 2012-12-07T15:37:45.720 回答
0

我已经想出了如何解决这个问题。我有一个基本活动类,我的应用程序中的所有其他活动都继承自该类。我覆盖

onResume 与:

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

于 2013-02-20T15:56:58.847 回答