Массив потоков в Android - PullRequest
0 голосов
/ 17 августа 2011

Я собираюсь создать приложение, использующее многопоточные потоки в Java (Android), что-то вроде этого (nb, это не в моей голове и, скорее всего, изобилует ошибками)

thread [] jobs
int threadCounter

    // Some code

job = new Runnabul(){
    // Do something intresting
}

    // Some more code

while(true){
 jobs[threadCounter] = new job();
 threadCounter++;
}    

Это будетв какой-то момент у телефона кончается память и он умирает, поэтому, к моему квестрону, как я узнаю, что у меня почти не осталось ресурсов (и поэтому я могу замедлить создание новых потоков)?

Спасибо

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Лучше использовать службу executor, как описано здесь и здесь . Создайте пул потоков, а затем просто передайте Runnable (задача для выполнения).

Как сказал Дерекердманн, если вы действительно хотите создать массив потоков, используйте ASyncTask. Система позаботится о том, чтобы остановить их в случае нехватки памяти, и вы сможете управлять ими легче, чем потоком.

1 голос
/ 17 августа 2011

Вы должны изучить использование AsyncTask для Android вместо собственных потоков. Они используют исполнителей Java из java.util.concurrent, поэтому ОС полностью управляет созданием потоков и системными ресурсами.

В AsyncTasks также есть полезные методы для публикации прогресса и обновления графического интерфейса в потоке пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...