我正在创建一个移动应用程序,它使用AsyncTask从远程数据库更新本地数据库。这工作正常,但视图(旋转器和表数据)依赖于本地数据库中的数据。如果在初始运行asynctask之后这样做很好,但在第一次加载时屏幕是空白的。等待,而Asynctask完成android
我:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences sp = getSharedPreferences("***", 0);
boolean initalSync = sp.getBoolean("***.android.db.inital", false);
if(initalSync==false){
AsyncTaskRunner backgroundTask = new AsyncTaskRunner(this);
backgroundTask.execute();
}
因为从远程数据库远程数据库的本地数据库的更新是一个后台任务,如果initalsync布尔是假执行。
该片段显示基于本地数据库的信息,并且是默认/启动视图。
我目前运行
if(initalSync==true){
// DISPLAY TABLE OF DATA
}
我知道我不能“暂停”的线程,我不能执行本地表数据显示在onPostExecute我会更新在其他时间数据库保护它。
我基本上希望显示进度条,等待的AsyncTask完成,然后允许的代码的其余部分运行
任何想法?
是的,你不能等待,你需要显示的东西,而你没有别的可以显示。进度条是一个好主意。我不明白的是,你这样做的问题在哪里。 – zapl