Android使用启动画面加载大量主数据

问题描述

我有一个非常重的Main Acitivty类,该类在您首次安装该应用程序时冻结,直到加载所有数据为止,我想在所有数据都加载到Main Activity中时显示我的启动画面活动,并显示我的活动仅在主活动已加载所有内容时:

这是我当前的初始屏幕活动,当前仅执行此操作:

public class SplashActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = new Intent(this,MainActivity.class);
    startActivity(intent);
    finish();
}
}

我该如何实现?

解决方法

关于对问题的评论,似乎您正在尝试使用要加载的数据更新MainActivity的UI。您可以查询/加载有关启动活动的数据,将其传递给意图,以便可以将其收集到MainActivity的onCreate中,或将所有数据保存到SharedPreferences并从MainActivity中访问它们。

在SplashActivity中:

Intent intent = new Intent(this,MainActivity.class);
// inside data loading completion callback or after synchronous data gathering methods
intent.putExtra("key","value");
startActivity(intent); 

在MainActivity的onCreate方法中

Bundle extras = intent.getExtras();
String value = extras.getString("key"); 

如果需要,可以将模型作为json格式的字符串传递。

,

如果您的初始屏幕名为:spalsh.java 并且您的主要活动名为:MainActivity.java 首先,您创建此类:

public class SliderPrefManager {
private Context context;
private SharedPreferences pref;
private static final String Pref_Name="slider-pref";
private static final String Key_Start="startslider";
public SliderPrefManager(Context context){
    this.context = context;
    pref = context.getSharedPreferences(Pref_Name,Context.MODE_PRIVATE);
}
public Boolean startSlider(){
    return pref.getBoolean(Key_Start,true);
}
public void setStartSlider(Boolean start){
    pref.edit().putBoolean(Key_Start,start).apply();
}

}

并在初始屏幕中添加以下代码:

sliderPrefManager = new SliderPrefManager(login_Activity.this);
            sliderPrefManager.setStartSlider(false);

并且您检查了视图斜线屏幕的布尔值,请在mainActivity中添加以下代码:

if (sliderPrefManager.startSlider()) {
        Intent intent = new Intent(choise_way_sec.this,login_Activity.class);
        startActivity(intent);

        finish();

    }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...