Android:使用Thread进行异步任务

时间:2014-03-19 06:20:03

标签: android multithreading asynchronous android-asynctask splash-screen

我正在开发一个应用程序,其中我所做的是:

onCreate()中,我首先调用了异步任务,然后将一个线程编写为:

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) {}
}

但问题是我的线程无法正常工作。意味着我想活动一应该等待一段时间,然后活动二调用。但它并没有成功。

当我运行我的应用程序时,活动一对于第二个分数是可见的,并且活动二发生。它发生得如此之快,以至于用户无法找到应用程序中存在的活动。但其他功能正常。

现在我该怎么做才能举办我的活动。我不想在Async Task中实现进度对话框,因为我已经在XML文件中实现了它。

请指导我

1 个答案:

答案 0 :(得分:1)

onPostExecute(String result) Method中,使用Handler ...

写下等待时间代码