Использование поддержки Jack для Java 8, я хотел бы быть в состоянии написать что-то вроде этого:Определение BroadcastReceiver.onReceive со ссылкой метод
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals(ACTION_BINGO)) return;
Log.d(TAG, "Bingo!");
}
...
registerReceiver(this::onReceive, INTENT_FILTER_BINGO);
К сожалению, это невозможно. Хотя onReceive()
является уникальным абстрактным методом BroadcastReceiver
, эта вещь не является интерфейсом , это абстракционный класс, который не представляется заменяемым лямбда-выражениями. Любое предложение обойти это?
Вы можете создать construc tor для класса, который расширяет BroadcastReceiver и передает прослушиватель интерфейса этому конструктору. В методе onReceive позвоните слушателю –
. Я почти пришел к такому же выводу, за исключением того, что я не пользуюсь слушателем. – cuihtlauac