Android 使用MapFragment跳过帧进行替换

Android 使用MapFragment跳过帧进行替换,android,android-fragments,mapfragment,Android,Android Fragments,Mapfragment,我有一个包含LaunchFragment的简单布局。按LaunchFragment中的按钮将其替换为MapFragment,如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map_test); FragmentManager fragmentMa

我有一个包含LaunchFragment的简单布局。按LaunchFragment中的按钮将其替换为MapFragment,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map_test);

    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.content_view, new LaunchFragment()).commit();
}

@Override
public void onTriggerReplace(int id) {
    switch (id){
        case R.id.btn_replace_google:
            launchGoogleMapsFrag();
            break;
    }
}

private void launchGoogleMapsFrag() {
    FragmentManager fm = getFragmentManager();
    fm.beginTransaction().replace(R.id.content_view, MapFragment.newInstance()).commit();
}
注意:OnTiggerReplaceint由启动片段调用。上面粘贴的代码驻留在承载片段的活动中

问题在于更换会导致以下警告:

01-10 01:12:18.575  27820-27820/com.test.mapsprototype I/Choreographer﹕ Skipped 83 frames!  The application may be doing too much work on its main thread.
延误是很明显的。有什么办法吗

我已经知道:

启动一个新的活动,该活动将有来自launch fragment的map片段,但不会显示此警告,但是我的需求阻止我这样做。 更新要求:
我需要满足的唯一要求是将它集成到一个更大的应用程序中,该应用程序已经为我替换了片段,只要我为它提供了片段,那么我就没有选择启动另一个活动。所有其他片段似乎都可以正常工作,但贴图片段会导致帧跳过。

您所做的看起来相当标准。它没有错,除非你在UI线程上做了一些与片段转换无关的事情。因此,如果您可以指定您提到的需求,人们可能会在应用程序的设计级别上解决您的问题。我知道这是一个非常标准的操作,除了替换之外,ui线程上什么都没有,这就是为什么我对它为什么会导致这个错误感到困惑的原因。我通过创建一个只有2个片段的单独应用程序来测试这一点。最初的一个有按钮启动谷歌地图片段。我敢肯定,任何使用这种地图片段的人都会犯错误。我只是到处找工作。如果你想自己运行来查看错误,我可以在这里发布整个演示应用程序代码