2012-02-03 6 views
2

私はアンドロイド用のアプリを書いており、音楽はバックグラウンドで再生されています。私はアプリケーションの音楽を閉じるときに再生を続けます。理由は何ですか?なぜすべてがアプリに属していても自動的に閉じないのですか?手動ですべてを止めるべきですか?アプリは閉まっていましたが、音楽は再生し続けます

答えて

2

Androidアプリはさまざまな部分で構成できることを理解するには、Application Fundamentalsをお読みください。たとえば、Activityは完全なappではなく、ActivityをAndroidデバイスのホームページに戻すと、そのアプリケーションは終了しません。あなたの質問への答えで

...

は私が手動ですべてを停止する必要がありますか?

いいえ、通常はOSを整理させますが、音楽を再生する場合は、音楽を再生するのをやめてください。

+0

ありがとうございます。 –

1

メディアを再生するのは難しいことがあり、設定方法に大きく依存します。あなたは実際にherehereという文書を読むべきです。私はあなたのアプリをどのようにセットアップするのかわからないので、具体的なことはできませんが、あなたはサービス(「バックグラウンド」)を通じてそれを実行していると思われます。その場合、アクティビティやニーズからいくらか自律していますあなたがアプリを離れるときに管理される。

+0

私はAndroidで新しく、サービスについて読んでいただきありがとうございます。 –

2

Android Developersのブログのthis funny post by Tim Brayは、音楽をやめるべきときや、いつ再開するべきかを明確に説明していると思います。

1

はい、手動で停止する必要があります。 MediaPlayerを使用していますか?私はあなたがそれを完了したら、あなたがプレイヤーを解放する必要があることをAPIドキュメントが示していると思います。ですからあなたのonDestroyではmusic.release();を実行します。

0

このコードは私のために働いた!

public class MainActivity extends AppCompatActivity { 
MediaPlayer mediaPlayer; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.activity_main); 
    mediaPlayer = MediaPlayer.create(this, R.raw.beep_warning); 
    final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox); 
    checkBox.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (checkBox.isChecked()) { 
       mediaPlayer.start(); 
       mediaPlayer.setLooping(true); 
      } 
      else{ 
       mediaPlayer.pause(); 
      } 
      } 


    }); 

} 
@Override 
protected void onStop() { 
    super.onStop(); 
    mediaPlayer.release(); 
} 
関連する問題