【问题标题】:android: Moving through activities without popping themandroid:在活动中移动而不弹出它们
【发布时间】:2011-01-10 20:36:45
【问题描述】:

我希望实现以下目标:

活动 A -> 活动 B

活动 B -> 活动 A

在纸面上,这听起来就像只是按下后退按钮一样。问题是,我不想弹出 Activity B。

我需要一些类似于 moveTaskToBackground 的东西,但只是针对单个活动。这样当我再次从 A 回到它时,它可以恢复。

为了给您一些上下文,活动 A 是一个项目列表。活动 B 显示有关项目的信息并播放附加到它的歌曲。从 B 回到 A 时,我希望这首歌继续播放,这样如果人们在 A 中点击相同的选项,他们就会恢复活动。否则终止该活动并使用新的细节开始一个新的活动并播放新歌曲。

【问题讨论】:

    标签: android android-activity activity-stack


    【解决方案1】:

    您需要查看ActivityGroupLocalActivityManager。 TabActivity(如其他答案中所建议)实际上扩展了 ActivityGroup。

    这里有一个简单的例子来帮助你入门:

    使用它来启动活动 A:

    LocalActivityManager manager =  getLocalActivityManager();  
    
    //A_ID == 1
    Window activityWindow = manager.startActivity(A_ID, intent_activityA); 
    setContentView(activityWindow.getDecorView());
    

    或者这个开始活动B:

    //B_ID == 2
    Window activityWindow = manager.startActivity(B_ID, intent_activityB);
    setContentView(activityWindow.getDecorView());
    

    活动被缓存并与指定的 ID 相关联。如果您多次调用具有相同 id 的 startActivity,则实际使用缓存的活动(并非总是如此,取决于您使用的意图)。如果需要,您可以轻松地从缓存中删除任何活动。查看LocalActivityManager了解更多详情。

    【讨论】:

    • 谢谢 inazaruk,这就是我要找的。​​span>
    【解决方案2】:

    您可以使用TabActivity 在活动之间切换。您可以在代码中进行切换。只需隐藏 UI 中的选项卡即可。

    这里有一个快速入门的教程:http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

    【讨论】:

    • 很好的解决方案,但不是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2019-08-11
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多