Анонимные внутренние классы (например, Runnable
, который вы создаете здесь) могут ссылаться на final
локальные переменные из их внешней области видимости. Если вы хотите получить доступ к параметру file
, измените функцию, сделав его final
:
public void playSoundFile(final File file) {
/* ... */
}
Теперь ваш новый Runnable
может ссылаться на эту переменную без проблем.