アップデート #3
ここで何が起こっているのかをさらに理解するために、startActivityForResult を介して VideoView をロードするアクティビティを開始し、予想される requestCode として値 (25) をフィードしました。呼び出しアクティビティの onActivityResult requestCode は 25 ではありません (一貫して 131097 です。これは、テスト中のメモリ使用量のアーティファクトとしてのみ、具体的で一貫していると確信しています)。
アップデート #2
VideoView アクティビティから戻るときに強制的にバックスタック ポップを実行し、フラグメント ビューに沿ってポップ バックする代わりに、コンテナーをポップ バックしました。変。
少し更新
追加した
FragmentManager fm = this.getFragmentManager();
backCount = fm.getBackStackEntryCount();
onCreateView、onResume、および onSaveInstanceState で、バックスタック カウントが消去されているかどうかを確認します。そうではない。だから...バックスタックは実際には消去されていないと思います.Backボタンでアクセスできなくなっただけですか?あたかもコンテンツではなく、フラグメントのコンテナにフォーカスがあるかのようです。か何か。私はここで完全に混乱しています。
更新終了
以前にも同様の質問をしましたが、これはもう少し具体的で、妙に厄介です。
ユーザーがさまざまな分類されたビデオクリップの中から選択できるようにする一連のフラグメントがあります。ビデオ クリップ ビューから始めて、ユーザーは「ハイライト」、「インタビュー」などから選択します。サブカテゴリが選択されると、ユーザーは視聴するビデオを選択します。ビデオ クリップからサブセクションに移動し、[戻る] ボタンを押すと問題なく動作します。ただし、ユーザーがサブセクションでビデオを選択してからヒットバックすると、サブセクションに戻され (良い)、もう一度 [戻る] をクリックしても何も起こりません。あたかもバックスタックがなくなったかのように。
関連するコードは次のとおりです。
バックスタックの作成:
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);
}
いつもありがとうございます。