2011-07-30 6 views
5

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

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

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

То, что я пробовал:

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

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

+0

Может быть, у вас есть потоковая передача в этой игре, хотя и не уверен, что андроид не может воспроизводить несколько потоковых аудио .......... http://stackoverflow.com/questions/5642508/android -multiple-одновременный-streaming-audio – viv

+0

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

ответ

2

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

-2

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

0

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

0

Это связано с деятельностью Lifecycle. ОС может убить ваше приложение, если оно нуждается в памяти. Возможно, вам стоит подумать о service

8

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

Заканчивать документы для startForeground()

+0

Удивительный. Следующим шагом было добавить для него уведомление. Похоже, что обслуживание переднего плана будет обрабатывать оба. – Nick

+0

Думаю, у вас есть решение. Ответ ниже - это не решение, потому что оно зависит от версии Android. – Cocorico

Смежные вопросы