活动堆栈问题。为什么以及如何发生?

时间:2014-06-24 20:52:20

标签: android android-fragments

enter image description here

所以这是我的应用程序的流程....我想这个图表中的流程非常清晰,所以我直接转到我的观点

通知可以重新创建玩家活动,即使它已被销毁......

播放屏幕启动前台服务......

所以这就是我被困的地方...... 假设我从片段b开始播放器活动,现在我按下,播放器活动被破坏(在启动服务和通知后)...现在我再次按下,片段现在被销毁...

现在我再次从通知中重新创建玩家活动,但是再次按下它不会让我回到碎片,因为它们已经被摧毁了...我希望它再次将我带回碎片(仅当活动时和活动b没有启动它,换句话说,活动a和活动b不在后面的堆栈中)?我怎么能实现它?

我可以想到一个解决方案,我可以覆盖onbackpressed并再次启动活动,并正确检查哪个活动启动了它,如果该活动已经被破坏了......对于检查,我想到了全局变量,但是这个看起来像一个蹩脚的工作,有没有办法使用活动堆栈等,我可以解决它?

2 个答案:

答案 0 :(得分:0)

 @Override
     public void onBackPressed() {

         moveTaskToBack (true);
     }

编辑:我在保存片段

的活动中使用了上述代码

这完成了工作,该死的我是如此愚蠢,我甚至没有尝试在开始赏金之前 无论如何我认为它可能对其他人有帮助,这个问题和答案也显示了moveTaskToBack的正确用法。但我不知道该给赏金的人是谁......

答案 1 :(得分:0)

您可能需要使用parentActivityName来合成后台堆栈。在此处阅读更多内容 - http://developer.android.com/guide/topics/manifest/activity-element.html#parent