Код не выполняется в приложении onCreate - Kotlin / Android - PullRequest
0 голосов
/ 12 ноября 2018

Не могли бы вы помочь мне понять, почему я не могу запустить строку SoundManager.initialize (this) в приложении onCreate?

    class MyApplication : Application() {

override fun onCreate() {
    super.onCreate()
    SoundManager.initialize(this)
    }
}

из

    class SoundManager {

var soundPool: SoundPool
var c3 = 0

init {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        soundPool = SoundPool.Builder().setMaxStreams(13).build()
    } else {
        soundPool = SoundPool(13, AudioManager.STREAM_MUSIC, 5)
    }
}

fun loadSound(context: Context) {
    c3 = soundPool.load(context, R.raw.c3, 1)
}

fun playSound() {
    soundPool.play(c3, 1.0f, 1.0f, 0, 0, 1.0f)
}

companion object {

    private var singleton: SoundManager? = null

    fun initialize(context: Context) {
        val soundManager = instance
        soundManager.loadSound(context)
    }

    val instance: SoundManager
        @Synchronized get() {
            if (singleton == null) {
                singleton = SoundManager()
            }
            return singleton as SoundManager
        }
    }
}

Я нашел обходной путь, вызвав SoundManager.initialize (this) внутри функции onCreate моего первого Activity, но мне любопытно, почему я не могу запустить его с onCreate приложения.

Спасибо!

1 Ответ

0 голосов
/ 12 ноября 2018
     <application
        -------
        android:name=".MyApplication"
        ------
       >

Добавьте это в свой файл манифеста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...