android - Android 使用 Splash Screen 加载繁重的 Main 数据
问题描述
我有一个非常重的 Main Acitivty 类,当您第一次安装应用程序时,它会冻结,直到加载所有数据,我想在 Main Activity 中加载所有数据时显示我的 Splash Screen 活动,并且仅在主要活动已加载所有内容:
这是我当前的启动画面活动,目前它只这样做:
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 格式的字符串传递。
推荐阅读
- python - Python / Flask:ImportError:无法从'core'导入名称'app'
- javascript - 使用 Javascript 在列表中插入新项目时,我得到一个空值
- orm - TypeORM 不在列上添加外键
- c++ - 使用来自 c++ DLL 的函数
- git - 无法执行 Ansible 脚本以从 git 获取代码并将其推送到多个服务器
- django - /config/list_enseignant/ 处的 NoReverseMatch
- javascript - 在 {} 中解压缩对象
- python - 使用 selenium 从元素获取 src
- python - Python opencv 代码在运行大约 30 秒后冻结
- powershell - Powershell从键值对创建表,键为列标题