我正在为我的应用程序从服务器获取数据。“getData”函数包含在应用程序的主 Activity 中,位于启动线程中。我遇到的问题是这样的:
如果我在加载应用程序后快速输入新闻或描述,我注意到并非所有信息都已加载(需要保存的最后 2 或 3 个字符串为空)。但是,如果我在显示主菜单后(完成启动线程后)再允许应用程序几秒钟,则不会发生问题,所有信息都正确存储在手机上。我尝试将启动画面延迟几秒钟,但这并不是一个真正优雅的解决方案,也并不总是有效。
我的问题是如何确保功能在跳转到“最终”之前已经完成
我没有将数据存储在任何数据库中,只是存储在另一个类的公共静态字符串数组中。
您在下面有我的代码:
if(networkAvailable()){
Thread splashTread = new Thread() {
@Override
public void run() {
try {
getData.execute(description_Hyperlinks);
getNews.execute(new String[]{newsJSON_Hyperlink});
getOffers.execute(new String[]{offersJSON_Hyperlink});
for(int i = 0; i<3; i++)
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
finish();
startActivity(new Intent(FlexFormActivity.this, MainMenu.class));
stop();
}
}
};
splashTread.start();