【发布时间】:2014-03-19 06:20:02
【问题描述】:
我正在开发一个应用程序,我所做的是:
在onCreate()我先调用了一个Async Task,然后写了一个线程为:
new LoadDataBase().execute();
// New Thread call.
new Thread() {
// Running Thread.
public void run() {
int count=0;
while (count<5){
try{
Thread.sleep(500);
count++;
}catch(Throwable e){
e.printStackTrace();
}
}
Intent intent = new Intent(ActivityOne.this,ActivityTwo.class);
startActivity(intent);
finish();
}
}.start();
我的异步任务代码如下:
private class LoadDataBase extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... arg0) {
// Create data base from assets folder.
DataBaseHelper dataBaseHelper = new DataBaseHelper(getApplicationContext());
try {
dataBaseHelper.createDataBase();
} catch (IOException e) {
e.printStackTrace();
}
// Closing the Data base.
dataBaseHelper.close();
return "";
}
@Override
protected void onPostExecute(String result) {}
}
但问题是我的线程无法正常工作。意味着我希望活动一应该等待一段时间然后活动二调用。但事实并非如此。
当我运行我的应用程序时,活动一在第二个部分可见,并且活动二发生。它发生得如此之快,以至于用户无法找到应用程序中是否存在该活动。但其他功能运行良好。
现在我应该做什么来举行我的活动一。我不想在异步任务中实现进度对话框,因为我已经在 XML 文件中实现了它。
请指导我
【问题讨论】:
标签: android multithreading asynchronous android-asynctask splash-screen