2012-02-03 40 views
-2

在應用程序中,我調用了alerdialog中的線程單擊偵聽器。 它顯示Mobile Samsung pro中的錯誤「強制關閉應用程序」。 但當我在另一個應用程序中執行相同的代碼,然後代碼正常工作...Android與線程顯示錯誤

+0

粘貼您登錄這裏,以使其更清晰。 – Yuvi 2012-02-03 04:52:17

+1

把你的代碼和完整的日誌。 – jeet 2012-02-03 04:52:45

+0

-1經過8個小時仍然沒有問題的代碼,沒有評論回答 – 2012-02-03 13:07:18

回答

2

這可能是因爲你在alerdialog click listener中做錯了。做你做錯的事是對的,它不會顯示錯誤。

+0

答案應該去社區Wiki恕我直言 – 2012-02-03 05:04:29

0

下面的過程是否有助於完整的在你的應用程序中 Android還提供了一個名爲AsyncTask的東西,它專門用於在單獨的線程上運行一些東西,還有一些在UI線程上運行。這將自動使用Android的線程池,如果你沒有任何理由使用一個明確的獨立的線程,是一個簡單,乾淨的路要走:

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { 
    // Runs on a ThreadPool thread 
    protected Long doInBackground(URL... urls) { 
     int count = urls.length; 
     long totalSize = 0; 
     for (int i = 0; i < count; i++) { 
      totalSize += Downloader.downloadFile(urls[i]); 
      // Sends data to onProgressUpdate to run on the UI thread 
      publishProgress((int) ((i/(float) count) * 100)); 
     } 
     return totalSize; 
    } 

    // Runs on the UI thread! 
    protected void onProgressUpdate(Integer... progress) { 
     setProgressPercent(progress[0]); 
    } 

    // Runs on the UI thread! 
    protected void onPostExecute(Long result) { 
     showDialog("Downloaded " + result + " bytes"); 
    } 
}