6

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

但我的问题是,如果我切换应用程序并尝试保持流继续播放(其中一些持续 2-4 小时)并在我听的时候玩游戏或其他东西,它有时会死掉。我不确定到底是什么问题,我的猜测是 Android 系统决定终止该进程是可以的……但事实并非如此。

那么,如果需要资源而不是我的流媒体 mp3 应用程序,我能做些什么让它杀死其他进程吗?

我试过的:

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

但这并不好。

4

5 回答 5

8

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

查看startForeground()的文档

于 2011-07-30T03:50:25.777 回答
2

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

于 2011-11-18T22:25:08.823 回答
0

据我所知,一个程序不能永远运行,在某些时候操作系统会杀死它。但是您可以尝试提供一项服务,并使其偶尔生成带有有用信息的通知。然后,再次开始活动。

于 2011-07-30T03:44:29.483 回答
0

这是由于活动Lifecycle。如果需要内存,操作系统可能会杀死您的应用程序。您可能需要考虑一项服务

于 2011-07-30T03:44:49.357 回答
-2

我在我的 Android 手机中遇到了内存管理问题,它终止了你描述的进程。您可以考虑安装像Android Booster这样的程序来监控可用内存并关闭使用过多内存的程序,以便您希望保持打开的程序有足够的内存运行。

于 2011-07-30T03:42:31.557 回答