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

问题描述:

我找不到任何好的应用程序从一个可以在满足我的要求的背景中运行的URL流式传输MP3,所以我决定自己写一个。事实证明,如果您运行的是Froyo或更好的版本,则可以非常方便地使用本地MediaPlayer播放MP3。我可以阻止Android杀死我的应用程序吗?

但我的问题是,如果我切换应用程序,并尽量保持流去(他们中的一些过去的2-4小时),玩游戏或同时我在听它的东西,它有时只是死亡。我不确定问题到底是什么,我的猜测是Android系统认为杀死该进程是可以的......但事实并非如此。

那么,有什么我可以做,使之杀死其他进程是否需要,而不是我的MP3流媒体应用程序的资源?

我曾尝试:

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

但它没有好。

+0

可能是你在那场比赛中也有一些流,虽然不能肯定,它发生的Android无法播放多种音频流.......... http://*.com/questions/5642508/android多个同时流音频 – viv

+0

我也听说过,但在我的活动是单个实例之前,我可以至少运行两次,同时流式传输不同的文件。 – Nick

我发现我的Droid难以置信了更新,以姜饼(2.3.4)突然后它的工作原理。我根本没有做任何改变,它只是在姜饼中死去,就像在Froyo一样。我知道Gingerbread有媒体播放器的改进,所以我不得不假定Froyo有一个修复了姜饼的bug。

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

据我所知,一个程序不能运行下去,在某些时候,操作系统将其杀死。但是你可以尝试的是获得一项服务,并使用有用的信息一次性生成通知。然后,再次开始活动。

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

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

退房文件为startForeground()

+0

太棒了。我的下一步是为它添加通知。它看起来像前台服务将处理这两个。 – Nick

+0

我认为你有解决方案。下面的答案不是解决方案,因为取决于Android版本。 – Cocorico