Android sendBroadcast в другой модуль - PullRequest
0 голосов
/ 04 марта 2020

У меня есть основной модуль приложения «app1» и второй модуль «app2», который запускается как «process: SecondActivity». Мне нужно отправить сообщение из SecondActivity с помощью широковещательного приемника, но сообщение не приходит на прием. Приемник вещания находится в модуле «tools», модули «app1» и «app2» зависят от модуля «tools».

Мой приемник вещания

class ExportReceiver : BroadcastReceiver() {

companion object {

    const val ACTION_EXPORT = "ACTION_EXPORT"

    @JvmStatic
    fun getIntentFilters() = IntentFilter(ACTION_EXPORT)

}

@FunctionalInterface
interface OnExport {
    fun onExport(uri: Uri)
}

private var mExport : OnExport? = null

override fun onReceive(context: Context?, intent: Intent?) {
    intent?.let {
        if (it.action == ACTION_EXPORT) {
            it.data?.let { uri ->
                mExport?.onExport(uri)
            }
        }
    }
}

fun setExport(export: OnExport) {
    mExport = export
}
}

Зарегистрируйте приемник в «app1»

mExportReceiver = new ExportReceiver();
mExportReceiver.setExport(uri -> {});
mContext.registerReceiver(mExportReceiver, ExportReceiver.getIntentFilters());

Отправить трансляцию на "app2"

override fun onExportFile(fileUri: Uri?) {
    fileUri?.let {
        sendBroadcast(Intent(ExportReceiver.ACTION_EXPORT).apply {
            data = fileUri
        })
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...