0

我開發一個應用程序中,我所做的是:安卓:異步任務與線程

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

但問題是,我的線程無法正常工作。意思是我希望Activity應該等待一段時間然後Activity兩次調用。但它不是哈哈。

正如我運行我的應用程序,活動一是可見的分數秒和活動二發生。它發生得太快,以至於用戶無法找到應用程序中存在或不存在的活動。但其他功能工作正常。

現在我該怎麼做才能保持我的活動。我不想在異步任務中實現進度對話框,因爲我已經在XML文件中實現了它。

請指引我

回答

1

onPostExecute(String result) Method,寫等待使用Handler時間碼...

+0

感謝您的建議,但你能否詳細說明它的細節,如何寫等待使用處理器的時間碼。 –

+0

https://www.google.co.in/search?q=handler+example+in+android&oq=handler&aqs=chrome.2.69i57j0l5.4695j0j8&sourceid=chrome&espv=2&es_sm=122&ie=UTF-8 –