2011-11-03 61 views
9

如何在没有恢复的情况下从后台弹出碎片?我只是想从后面的堆栈中删除,我不想显示它。如何在没有恢复的情况下从后台弹出碎片?

+0

您是否找到解决方案?我注意到我的应用程序在大约140个碎片中崩溃,所以我想从大约100个碎片中删除最老的碎片,但还没找到办法。 –

回答

0

这是建筑问题。

1)假设我们有2个控制器(片段/活动):控制器A和控制器B. 它们都连接到某个模型的一个实例(您可以使用与服务绑定,Singleton模式或Application-继承人阶级,并吸取它)。 当控制器B发生了一些有趣的事情时,他通知模型有关它,然后模拟调用controllerA.finish()/ controllerA.remove()。 当然,我总是试图尽可能好地实现这个解决方案,但有一个主要想法。 2)在另一种情况下,我在startActivity(intent)之后立即调用finish();我也可以编写:startActivityForResult(intent,requestCode),并在完成第二个活动方法onActivityResult(requestCode,responseCode,intent)后调用 - 如果requestCode的相等,我完成活动。

+0

片段没有完成方法。 –

+0

是否可以在onResume()或onStart()中插入简单检查权限 - 是否需要删除? – QuickNick

0

如果您不使用FragmentTransaction的方法
public abstract FragmentTransaction addToBackStack (String name)
将其添加到后退堆栈中。不需要删除它。

+1

我需要从回栈中删除特定的片段。由于它恢复指定的片段,popBackStack不起作用。 –

+0

popBackStack中使用的标志是什么。尝试使用POP_BACK_STACK_INCLUSIVE。 –

+0

是的,我用过这个标志。 OnResume的后台入口仍然被称为。 –

相关问题