Как насчет использования асинхронной задачи, чтения файла или загрузки чего-либо, требуется время, которое требует от пользователя ожидания, вы должны подумать об использовании асинхронной задачи для этой цели,
1: Из имеющегося у нас справочника разработчиков: AsyncTask обеспечивает правильное и простое использование потока пользовательского интерфейса. Этот класс позволяет выполнять фоновые операции и публиковать результаты в потоке пользовательского интерфейса без необходимости манипулировать потоками и/или обработчиками. http://developer.android.com/reference/android/os/AsyncTask.html
Асинхронная задача определяется тремя универсальными типами, называемыми Params, Progress и Result, и четырьмя этапами, называемыми onPreExecute, doInBackground, onProgressUpdate и onPostExecute.
2: Таким образом, вы можете включить класс задачи Async как:
class DoBackgroundTask extends AsyncTask<URL, Void, ArrayList> {
/*
URL is the file directory or URL to be fetched, remember we can pass an array of URLs,
Void is simple void for the progress parameter, you may change it to Integer or Double if you also want to do something on progress,
Arraylist is the type of object returned by doInBackground() method.
*/
@Override
protected ArrayList doInBackground(URL... url) {
//Do your background work here
//i.e. fetch your file list here
return fileList; // return your fileList as an ArrayList
}
protected void onPostExecute(ArrayList result) {
//Do updates on GUI here
//i.e. fetch your file list from result and show on GUI
}
@Override
protected void onProgressUpdate(Integer... values) {
// Do something on progress update
}
}
//Meanwhile, you may show a progressbar while the files load, or are fetched.
Эту AsyncTask можно вызвать из вашего метода onCreate, вызвав его метод execute и передав ему аргументы:
new DoBackgroundTask().execute(URL);
3: И, наконец, есть очень хороший учебник по AsyncTasks здесь, http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
person
Rachit Mishra
schedule
01.09.2013