2011-07-30 20 views
5

自分の要件を満たすバックグラウンドで実行できるURLからMP3をストリーミングするのに適したアプリケーションが見つからないため、自分で作成することにしました。あなたがFroyo以上を実行している場合は、ネイティブMediaPlayerを使用してMP3をストリームするのは非常に簡単です。Androidを停止してアプリを強制終了できますか?

しかし、私の問題は、アプリケーションを切り替えてストリームを維持しようとすると(そのうちのいくつかは2-4時間持続する)、ゲームを聞いている間にゲームが途切れることがあります。私は問題が何であるか正確にはわからないが、私の推測では、Androidシステムはそのプロセスを殺すことがOKだと判断したということだが、そうではなかった。

私のストリーミングmp3アプリの代わりにリソースが必要な場合、他のプロセスを殺すためにできることはありますか?

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO); 
をしかし、それは良いです:私が試してみました何

+0

あなたはそのゲームでもストリーミングをしているかもしれませんが、確かではありませんが、アンドロイドは複数のストリーミングオーディオを再生できません.......... http://stackoverflow.com/questions/5642508/android同時に複数の同時ストリーミングオーディオ – viv

+0

私はそれも聞いたことがありますが、私の活動がシングルインスタンスになる前に、少なくとも2回同時に異なるファイルをストリーミングすることができました。 – Nick

答えて

2

のための書類をチェックしてください。私は全く変更を加えませんでしたが、Froyoのようにジンジャーブレッドで死ぬことはありません。私はジンジャーブレッドにメディアプレーヤーの改良があることを知っているので、私はジンジャーブレッドで修正されたフロイオにバグがあったと仮定しなければならないだろう。

-2

私のAndroid搭載端末のメモリ管理に問題があり、説明したようなプロセスが終了しました。のようなプログラムをインストールして、使用可能なメモリを監視し、あまりにも多くのメモリを使用しているプログラムを閉じると、実行したいプログラムに十分なメモリが確保されます。

0

私が知る限り、プログラムは永遠に実行することはできません。ある時点で、OSはそれを強制終了します。しかし、あなたが試みることができるのは、サービスを持って、しばらくの間、有用な情報を使って通知を生成させることです。次に、活動を再開します。

0

これはアクティビティLifecycleによるものです。メモリが必要な場合、OSによってアプリが強制終了される可能性があります。考慮する必要がありますservice

8

サービスをフォアグラウンドサービスにする必要があります。フォアグラウンドサービスは、通知バーにアイコンを表示する必要があり、極端なメモリの負荷がなければ、Androidシステムはそれらを強制終了しません。

私は私のドロイド信じられないほどのジンジャーブレッド(2.3.4)に突然のすべてを更新した後、それが動作することがわかっstartForeground()

+0

私の次のステップはそれのための通知を追加することでした。フォアグランドサービスが両方を処理するように見えます。 – Nick

+0

私はあなたに解決策があると思います。 Androidのバージョンに依存するため、以下の答えは解決策ではありません。 – Cocorico

関連する問題