特定のコールバックが呼び出されたときにDialogFragmentをユーザーに表示したいと思います。私の問題は、リスナーへの複数の呼び出しが同時に行われ、fragmentmanagerが複数のフラグメントを表示することがあることです。次のコードを使用しています
if (getSupportFragmentManager().findFragmentByTag("testFragment") == null) {
getSupportFragmentManager().beginTransaction()
.add(new MyFragment(), "testFragment")
.commit();
Log.e("TAG", "Show! "+(getSupportFragmentManager()
.findFragmentByTag("testFragment") == null));
}
最後の行のログメッセージが示すように、FragmentTransactionをコミットした後、findFragmentByTagがnullを返す短い期間があります。それで、たとえば、コミットする最後の呼び出しのミリタイムを節約し、1秒以内に後の呼び出しを無視するよりも、メッセージを1回だけエレガントに表示する方法はありますか?