Для меня это было то, что
.setPriority(Notification.PRIORITY_HIGH);
, из-за чего уведомление не очищалось после щелчка ... убедитесь, что вы используете:
.setPriority(Notification.PRIORITY_DEFAULT);
И .setAutoCancel(true)
должен работать.
Да, это эквивалентно, доверься своей IDE!
Относительно нескольких конструкторов:
() -> { //implement }
a String
? - нет -> только один возможный конструктор для вызова -> тот, для Runnable
, который вы также можете вызывать самостоятельно. Да, это похоже. Оба представления будут вызывать конструктор Thread(Runnable runnable)
.
Более поздний код в вашем вопросе
() -> { //implement }
представляет собой лямбда-представление анонимного класса в предыдущем коде:
new Runnable() {
@Override
public void run() {
//implement
}
}
Это похоже, но не совсем то же самое. Он ведет себя одинаково во всех обычных случаях. Некоторые методы обращаются к их стеку (trace). Это может дать разные результаты.
Да, это то же самое. Вы можете использовать лямбда-выражение, потому что интерфейс Runnable имеет аннотацию @FunctionalInterface.