在应用程序中,我在alerdialog点击监听器中调用了Thread。 它显示了Mobile Samsung pro中的错误“强制关闭应用程序”。 但是当我在另一个应用程序中执行相同的代码时,代码正常工作......
答案 0 :(得分:2)
这可能是因为你在alerdialog点击监听器中做错了什么。做你做错的事情,它不会显示错误。
答案 1 :(得分: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");
}
}