我可以阻止Android杀死我的应用吗?

Nic*_*ick 5 android android-mediaplayer

我找不到任何可以在满足我要求的后台运行的URL流式传输MP3的好应用程序,所以我决定自己编写一个.事实证明,如果你正在运行Froyo或更好的话,使用原生MediaPlayer流式传输MP3非常容易,我就是这样.

但我的问题是,如果我切换应用程序并尝试保持流(其中一些持续2-4小时)并在我正在听它时玩游戏或其他东西,它有时会死掉.我不确定究竟是什么问题,我的猜测是Android系统决定杀死这个过程是可以的......但事实并非如此.

如果需要资源而不是我的流媒体mp3应用程序,我可以做些什么来杀死其他进程?

我尝试过的:

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO);
Run Code Online (Sandbox Code Playgroud)

但这并不好.

小智 8

如果您还没有,则需要将服务作为前台服务.前台服务必须在通知栏中显示一个图标,除非在极端的内存压力下,否则Android系统不会杀死它们.

查看startForeground()的文档


Nic*_*ick 2

我发现我的 Droid Incredible 更新到 Gingerbread (2.3.4) 后突然就可以工作了。我根本没有做任何改变,它只是不会像在 Froyo 中那样在 Gingerbread 中消失。我知道 Gingerbread 中的媒体播放器有所改进,所以我不得不假设 Froyo 中存在一个错误,而 Gingerbread 中已修复该错误。