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

时间:2011-07-30 03:34:31

标签: android android-mediaplayer

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

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

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

我尝试过:

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

但这不好。

5 个答案:

答案 0 :(得分:8)

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

查看startForeground()

的文件

答案 1 :(得分:2)

我发现在我的Droid Incredible更新为Gingerbread(2.3.4)之后,它突然变得有效。我没有做任何改变,它只是不像在Froyo那样死在Gingerbread中。我知道姜饼中有媒体播放器的改进,所以我不得不假设Froyo中有一个在Gingerbread中修复的错误。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这是由于活动Lifecycle造成的。如果需要内存,操作系统可能会杀死您的应用。您可能需要考虑service

答案 4 :(得分:-2)

我的Android手机中的内存管理存在问题,这会终止您所描述的流程。您可以考虑安装类似Android Booster的程序来监视可用内存并关闭使用过多内存的程序,以便您希望保持打开的程序有足够的内存来运行。