更新#3
为了进一步了解这里发生了什么,我启动了通过 startActivityForResult 加载 VideoView 的 Activity,将值 (25) 作为预期的 requestCode 提供给它。调用 Activity 的 onActivityResult requestCode 不是不是 25。(它始终是 131097,我确信它是特定且一致的,仅作为测试期间内存使用的工件)。
更新#2
我在从 VideoView 活动返回时执行了强制回栈弹出,而不是沿片段视图弹出,而是弹出容器。诡异的。
轻微更新
我添加了
FragmentManager fm = this.getFragmentManager();
backCount = fm.getBackStackEntryCount();
在 onCreateView、onResume 和 onSaveInstanceState 上查看是否删除了 backstack 计数。它不是。所以......我猜backstack实际上并没有被删除,它只是不再被Back按钮访问了吗?几乎就好像片段的容器有焦点,而不是内容。或者其他的东西。我在这里很困惑。
结束更新
我之前问过一个类似的问题,但这有点更具体和奇怪的烦恼。
我有一系列片段,允许用户在各种分类的视频剪辑中进行选择。从视频剪辑视图开始,用户从“亮点”、“采访”等中进行选择。一旦选择了子类别,用户就选择了要观看的视频。从视频剪辑转到一个小节,然后单击“后退”按钮可以正常工作。但是,如果用户在小节中选择了一个视频,然后回击,他们将返回到小节(很好),如果他们再次回击,则没有任何反应。好像没有更多的backstack。
以下是相关代码:
后台创建:
protected void showSubmenu(BaseFragment fragment, String fragmentTagname) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentSubmenu, fragment, fragmentTagname);
transaction.addToBackStack(null);
//transaction.add(R.id.fragmentSubmenu, fragment, fragmentTagname);
transaction.commit();
}
从子菜单过渡到视频:
public void onListItemClick(ListView l, View v, int position, long id) {
Video video = (Video) this.getListAdapter().getItem(position);
String url = video.link.substring(29);;
url = Kriptonic.getEncryptedURL(url);
uri = Uri.parse(url);
Intent intent = new Intent(_myActivity, VideoClips.class);
startActivity(intent);
}
一如既往,感谢您的宝贵时间。