只显示一次DialogFragment

时间:2012-09-10 15:52:24

标签: android android-fragments

我希望在调用给定回调时向用户显示DialogFragment。我的问题是,有时在同一时刻对侦听器进行多次调用,而fragmentmanager显示多个片段,我正在使用以下代码

    if (getSupportFragmentManager().findFragmentByTag("testFragment") == null) {
        getSupportFragmentManager().beginTransaction()
                .add(new MyFragment(), "testFragment")
                .commit();
        Log.e("TAG", "Show! "+(getSupportFragmentManager()
                    .findFragmentByTag("testFragment") == null));
    } 

正如最后一行中的Log消息所示,在提交FragmentTransaction之后,findFragmentByTag返回null的时间很短。那么,是否有某种方法可以确保只显示消息,而不是保存最后一次调用的mili-time,例如在一秒钟内忽略后来的调用?

1 个答案:

答案 0 :(得分:10)

提交后立即调用getSupportFragmentManager().executePendingTransactions()应该强制片段管理器立即提交片段,以便后续对findFragmentByTag("testFragment")的调用不再返回null。