Android 在迁移到单活动体系结构时,如何避免创建初始屏幕片段?

Android 在迁移到单活动体系结构时,如何避免创建初始屏幕片段?,android,android-fragments,Android,Android Fragments,我尝试将我的应用程序迁移到带有导航组件的单活动体系结构 在多活动版本中,当用户运行应用程序时,他进入SplashScreen活动,应用程序在其中进行一些网络操作(设备注册,用户检查,…)。当所有这些都完成后,他开始内容活动 在单活动版本中,我必须创建SplashScreen片段才能完成相同的任务,但我不想创建它。这个操作太快了(~1s),我不需要片段,现在我想让我的内容片段(从内容活动创建)像开始-目标片段一样,在所有“初始”网络操作发生时显示加载程序 这种情况似乎没有问题,但问题是我需要从Sp

我尝试将我的应用程序迁移到带有导航组件的单活动体系结构

在多活动版本中,当用户运行应用程序时,他进入
SplashScreen
活动,应用程序在其中进行一些网络操作(设备注册,用户检查,…)。当所有这些都完成后,他开始内容活动

在单活动版本中,我必须创建SplashScreen片段才能完成相同的任务,但我不想创建它。这个操作太快了(~1s),我不需要片段,现在我想让我的内容片段(从内容活动创建)像开始-目标片段一样,在所有“初始”网络操作发生时显示加载程序

这种情况似乎没有问题,但问题是我需要从
SplashScreen
中提取代码,并将其放入内容片段中,但这不是放置代码的好地方。内容片段太大,有时会重新创建,所以我需要创建标志来表明我不想再次运行“初始”操作

那么,如何用最好的方式做到这一点呢?或者我需要创建
screensfragment


我的想法是将此代码放在
MainActivity
上,但我不完全理解如何使其工作。我需要在内容片段上显示loader,并以某种方式创建这样一种情况,即只有在
MainActivity
上的初始代码完成后,“所有开始工作”才会工作。

最简单的方法是创建一些带有回调的帮助器类。看起来像

class fragmentContent{
  void onCreateView(){
    View view = ...; //show loader
    helper.doLongOperationInBackground(new Callback());
    return view;
  }

  class Callback{
    void onLongOperationComplete(){
      showViewContent();
    }
  }

}

不要忘记只执行一次长操作。

最简单的方法是使用回调创建一些帮助器类。看起来像

class fragmentContent{
  void onCreateView(){
    View view = ...; //show loader
    helper.doLongOperationInBackground(new Callback());
    return view;
  }

  class Callback{
    void onLongOperationComplete(){
      showViewContent();
    }
  }

}
不要忘记只做一次长时间的操作