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

注意:每次调用 Activity 时,都会将父 Activity 放在暂停的 Activity 堆栈中:

SelectGame -> CreateNewGame -> PlayGame

但是您可以在需要时杀死一个 Activity,它将从堆栈中删除。

当您调用playGamefromcreateNewGame时,您可以使用以下代码:

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

新订单是:

选择游戏 -> 玩游戏

然后你createNewGame将从你的堆栈中消除并返回playGamecreateNewGame调用者。selectGames在这种情况下。

于 2012-11-22T04:10:22.683 回答
2

我相信在清单中添加android:noHistoryActivitycreateNewGame将完成您想要的

从文档:

机器人:无历史

  • 当用户离开它并且它不再在屏幕上可见时,是否应该从 Activity 堆栈中删除并完成(调用它的 finish() 方法)——如果应该完成,则为“true”,如果应该完成,则为“false”如果不。默认值为“假”。“真”值意味着活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回它。此属性是在 API 级别 3 中引入的。
于 2012-11-22T03:47:04.047 回答