如何解决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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。