IntentServiceのクラス内で
soundOne = soundPool.load(this, R.raw.one, 1);
を実行するとアプリが再起動になってしまいます。
oneとはres/raw/one.wavです。
IntentServiceのクラス外では
soundPool.play(soundOne, 1.0f, 1.0f, 0, 0, 1);
で再生できています。
soundOne = soundPool.load(this, R.raw.one, 1);
の記述場所は
onCreate()
onStartCommand()
のどちらも試しました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/17 03:36
回答2件
0
IntentServiceの特徴は自動で終了してくれるところです。
http://android.keicode.com/basics/services-intentservice.php
ただし、処理が完了したと判断されると勝手にServiceが終了します。
おそらく音楽再生前にServiceが終了しています。
onDestroy() でログを出力してみると良いかもしれません。
対策はいろいろ考えられます。
IntentServiceではなくServiceで管理する。
音を出している間IntentServiceを終了させないようなスレッドを止める等。
投稿2018/04/17 15:07
総合スコア143
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/23 08:06
2018/04/23 10:13
0
ベストアンサー
アプリが再起動
IntentServiceでSoundPoolの音が出ないだけであれば
ロードされていないうちに再生しようとしているのかもしれませんが
それでも再起動になることはないと思います
one.wavは本当に再生できるものでしょうか
投稿2018/04/17 08:07
総合スコア3733
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/17 08:16 編集
2018/04/17 08:41
2018/04/17 08:48
2018/04/17 12:38
2018/04/18 03:26
2018/04/23 08:09
2018/04/23 11:19
2018/04/27 10:16
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。