回答編集履歴

1 がっつり修正

abs123

abs123 score 1276

2017/03/30 12:12  投稿

どのAndroidバージョンを対象にされているかは分かりませんが、
下記のような処理は、省電力の観点から、
バックグラウンド中、処理が止められてしまう可能性が高いです。(cpuの使用権が割り当てられなくなる)
```Java
while (System.currentTimeMillis() < endTime) {
   synchronized (this) {
       try {
           wait(endTime - System.currentTimeMillis());
           if (!shouldContinue) {
               stopSelf();
               return;
           }
音声ファイルなどは、APKのassetsに格納されるようなので
AssetManagerからファイルを直接参照できるかもしれないです。
           NativeDialog.callUnity();
       } catch (Exception e) {
       }
   }
}
```
Unityからどこまでできるかは分かりませんが、
AlarmManagerと、BroadcastReceiverを使えば、
何とかなりそうな気がします。
参照出来たら、サービス上でSoundPoolやらMediaPlayerやらで再生してしまうのはどうでしょう。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る