我有一个应用程序从sqlite db加载数据,用它做一些计算并使用listview和适配器呈现它。所以这部分准备就绪并正在运作。在数据足够大的情况下,计算时间可能会变长。这很重要,因为我的活动不会显示,直到列表的所有元素都没有准备好。出于这个原因,我想在开始时显示一个启动画面并显示它,直到MainActivity中的所有数据都没有准备好。如果有一些关于它的教程或任何建议,我会真正推荐它。
但是,我需要添加另一个信息,即负责显示listView的MainActivity是整个应用程序的中心单元。用户经常会在应用启动后重新打开此页面。因此,必须在启动画面活动之外提供从sqlite db更新或创建新listview项的方法。
答案 0 :(得分:1)
public class SplahActivity extends Activity {
public static final int Tick = 1000;
public static final int Complete = 5000;
ArrayList<String> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
data = new ArrayList<>();
AsyncTaskRunner runner = new AsyncTaskRunner();
String sleepTime = time.getText().toString();
runner.execute(sleepTime);
}
private class AsyncTaskRunner extends AsyncTask<String, String, String> {
private String resp;
@Override
protected void onPreExecute() {
// Things to be done before execution of long running operation. For
// example showing ProgessDialog
}
@Override
protected String doInBackground(String... params) {
// data and save it in array
// data = Reveice data from db
return resp;
}
@Override
protected void onPostExecute(String result) {
// execution of result of Long time consuming operation
Intent i = new Intent(ActivityName.this,SecondScreen.class);
startActivity(i);
}
}
}