【发布时间】:2016-11-25 08:51:25
【问题描述】:
使用 Jack 对 Java 8 的支持,我希望能够编写类似的东西:
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 独有的抽象方法,但那东西不是接口,它是一个抽象类,似乎不能被lambda 替换表达式。有什么建议可以解决这个问题?
【问题讨论】:
-
您可以为扩展 BroadcastReceiver 的类创建构造函数,并将接口侦听器传递给该构造函数。在 onReceive 方法中调用监听器
-
我几乎得出了同样的结论,只是我没有使用监听器。
标签: java android lambda java-8 android-7.0-nougat