独自のカスタム通知音を再生して、アプリをシステムの既定の音とは別に設定したいと考えています。そのため、GCM メッセージを受信するとgenerateNotification
、ステータス バーに通知を表示してサウンドを再生するという関数があります。
現在、次のようにサウンドへのパスを設定しています。
String GENERAL_NOTIFICATION_SOUND = "android.resource://" + MyActivity.getInstance().getPackageName() + "/" + R.raw.sound_file;
これは、アプリが最近閉じられた場合でも、アプリが開いているときに機能します。しかし、アプリが Android のメモリ管理によって閉じられた場合、 がMyActivity.getInstance()
返さnull
れ、パスを解決できなかったため、通知を適切に表示せずにアプリが NullPointerException でクラッシュします。
パスをハードコーディングすることでこれを修正できると思いますが、もっと良い方法が必要だと感じています。アプリが開いていない可能性があるときにアクセスする必要があるファイルへのパスをどのように設定できますか?