2

startactivityと呼ばれるアクティビティではなく、アクティビティを別のアクティビティに戻すにはどうすればよいですか?

ユーザーが既存のゲームのリストからプレイするか、新しいゲームを開始するかを選択できるゲームがあります。新しいゲームを開始するとき、新しいゲームを作成するためにアクティビティに戻るのではなく、ユーザーがゲームのリストがアクティブになったときにユーザーが自分のターンを終了したときにそれを望んでいます。

さまざまな活動の中で、

現在の機能:

 selectGames  
        playGame --- return to selectGames
           or
        createNewGame --- playGame --- return to createNewGame --- return to selectGames

私はそれをしたい:

 selectGames  
        playGame --- return to selectGames
           or
        createNewGame --- playGame --- return to selectGames

インテントを挿入する方法や、createNewGameからアクティビティを開始するときに、ユーザーがゲームを終了または一時停止してselectGamesに戻ることができるようにする方法はありますか?インテントがスタックにある場合は、インテントのスタックからcreateNewGameを削除したいと思います(それは意味がありますか?)

4

2 に答える 2

7

注:アクティビティを呼び出すたびに、一時停止したアクティビティのスタックに親アクティビティを配置します。

SelectGame-> CreateNewGame-> PlayGame

ただし、必要なときにアクティビティを強制終了でき、スタックから削除されます。

playGameから呼び出す場合createNewGameは、次のコードを使用できます。

startActivity(playGame); //Put playGame in the top of stack
finish();                //Remove createNewGame (current Activity) from the stack

そして、新しい注文は次のとおりです。

SelectGame-> PlayGame

それからあなたはあなたのスタックから排除し、離れて発信者にcreateNewGame戻ります。この場合。playGamecreateNewGameselectGames

于 2012-11-22T04:10:22.683 に答える
2

マニフェストのアクティビティに追加android:noHistoryすると、あなたが望むことを達成できると思いますcreateNewGame

ドキュメントから:

android:noHistory

  • ユーザーがアクティビティスタックから離れて画面に表示されなくなったときに、アクティビティをアクティビティスタックから削除して終了する(finish()メソッドが呼び出される)かどうか。終了する必要がある場合は「true」、終了する必要がある場合は「false」そうでない場合。デフォルト値は「false」です。「true」の値は、アクティビティが履歴の痕跡を残さないことを意味します。タスクのアクティビティスタックに残らないため、ユーザーはタスクに戻ることができません。この属性は、APIレベル3で導入されました。
于 2012-11-22T03:47:04.047 に答える