Могу ли я остановить Android от уничтожения моего приложения? - PullRequest
5 голосов
/ 30 июля 2011

Я не смог найти ни одного хорошего приложения для потоковой передачи MP3 с URL, который может работать в фоновом режиме, который отвечает моим требованиям, поэтому я решил написать его самостоятельно. Оказывается, невероятно легко транслировать MP3 с нативным MediaPlayer, если вы используете Froyo или лучше, а я.

Но моя проблема в том, что если я переключаю приложения и пытаюсь поддерживать поток (некоторые из них длятся 2-4 часа) и играть в игру или что-то в то время, пока я ее слушаю, иногда она просто умирает. Я точно не знаю, в чем проблема, я думаю, что система Android решила, что можно убить этот процесс ... но это не так.

Так что я могу сделать, чтобы он убил другие процессы, если нужны ресурсы вместо моего приложения потокового mp3?

Что я пробовал:

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO);

Но это не хорошо.

Ответы [ 5 ]

8 голосов
/ 30 июля 2011

Вам нужно сделать сервис приоритетным, если вы этого еще не сделали. Службы Foreground должны отображать значок в панели уведомлений, и система Android не будет уничтожать их, если только они не испытывают чрезмерного давления памяти.

Ознакомьтесь с документами для startForeground ()

2 голосов
/ 19 ноября 2011

Я обнаружил, что после того, как мой Droid Incredible был обновлен до Gingerbread (2.3.4), он неожиданно заработал. Я не сделал никаких изменений, просто они не умирают в Gingerbread, как в Froyo. Я знаю, что в Gingerbread были улучшения для медиаплеера, поэтому я должен предположить, что в Froyo была ошибка, исправленная в Gingerbread.

0 голосов
/ 30 июля 2011

Насколько я знаю, программа не может работать вечно, в какой-то момент ОС ее убьет. Но то, что вы можете попробовать, - это иметь службу и заставлять ее время от времени генерировать уведомления с полезной информацией. Затем снова запустите упражнение.

0 голосов
/ 30 июля 2011

Это связано с действием Жизненный цикл . ОС может убить ваше приложение, если оно нуждается в памяти. Возможно, вам придется рассмотреть сервис

0 голосов
/ 30 июля 2011

У меня были проблемы с управлением памятью в моем телефоне Android, который завершал процессы, как вы описали.Вы можете установить программу типа Android Booster для мониторинга доступной памяти и закрытия программ, использующих слишком много памяти, чтобы программы, которые вы хотели бы оставить открытыми, имели достаточно памяти для запуска.

...