0

質問を適切に表現する方法がわからなかったので、説明させてください。Android プラットフォームで、1 つのアクティビティで 2 つのボタンをすばやく連続して押すと (アクティビティが画面を離れる前に 1 つのボタンを押してから別のボタンを押す)、2 つのアクティビティが次々と呼び出されることに気付きました。発生中は表示されませんが、戻るボタンを押すと、2 番目のボタンで呼び出されたアクティビティが終了 (終了) し、最初のボタンで呼び出されたアクティビティが表示されます。呼び出し元のアクティビティに戻るには、もう一度戻る必要があります。したがって、アクティビティ 2 の親アクティビティに到達するには、2 回戻る必要があります。

ですから、これが他の人にとって問題であるかどうかを知りたいのですが、もしそうなら、どうやってそれを修正しますか. それとも、これは大した問題ではないと思いますか。

4

2 に答える 2

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);
}

これにより、基本的に、ボタンを押すだけで1つの新しいアクティビティを開始できるようになります。2つのボタンを同時に離すと、最も早く(10マイクロ秒でも)リリースされたボタンのみが起動され、もう一方のボタンは引き続きインテントを送信しますが、最初に起動されたアクティビティが戻るか、アプリが終了するまで起動しません。

于 2013-02-20T15:56:58.847 に答える
0

finish()その後、終了するアクティビティを呼び出しstartActivity(your_intent);て次のアクティビティに進むことができるため、親アクティビティに到達するために 2 回戻る必要はありません。

于 2012-12-07T15:37:45.720 に答える