2010-12-29 4 views
1

私はいくつかの洞察を愛するという特定の問題を抱えています。ここに私のコード進行中のオーディオタスクを継続するにはどうすればよいですか?

Intent i = new Intent(); 
i.setDataAndType(media, mediaType); 
startActivity(i); 

これは私のための音声活動を開始し、それもそれが継続的な作業であるという通知バーに通知アイテムを置くです。しかし、私がホームボタンまたは戻るボタンを押すと、進行中のタスクはすぐに私のために殺されます。私はこの行動に混乱していた。

私は、オーディオアクティビティが開始されたときに、通知バーをドラッグして通知項目をクリックすると(同じアクティビティが再び表示されます)、これを実行するとタスクを続行する方法が見つかりましたそれに応じて動作する。ホームボタンをクリックすると、それが続きます。私が戻るボタンを押すと、それは続行されます。何らかの理由で通知項目をクリックすると、「正しい」インテントが起動されます。

私のアプリケーションを使用する誰も通知バーをプルダウンし、これを正しく動作させるために通知項目をクリックしないため、オーディオを最初に起動したときにこの動作が開始されます。

答えて

2

Serviceを使用してください。具体的には、サービスの作成/開始コールバックでstartForegroundService()に電話したいと思うでしょう。

+0

答えをありがとう。この機能(オーディオの再生)に既に利用可能なサービスはありますか?私はそこにいると思うだろうが、私はそれを見つけることができなかった。自分で作成する方法はわかっていますが、バックグラウンドミュージックを再生したいだけでなく、音楽のUIコントロールをよく(IEはバー、前、次、再生、一時停止を求める)。 – Pzanno

+0

http://android.git.kernel.org/?p=platform/packages/apps/Music.git;a=blob;f=src/com/android/music/MediaPlaybackService.java;h=を見てください。 9b1fd58fe1fe10bcc46cdda28fcc9772d8e16da4; hb = refs/heads/master これは、vanilla androidに付属の音楽プレーヤーからのものです。 –

+0

これは良い出典ですが、これまでに見たことがありますが、startService()でそれを使用する方法であるかどうかは不思議ではありませんでしたが、私自身のサービスを書く必要が増えています。 – Pzanno

関連する問題