У меня есть основной модуль приложения «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
})
}
}