#java #android
#java #Android
Вопрос:
Например, в Android добавление флагов к намерению с помощью:
Intent intent = new Intent(SOME_ACTION);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
Как будет выглядеть этот метод?
Комментарии:
1. Попробуйте использовать
int
Ответ №1:
Символом канала является побитовый оператор включения ИЛИ. Оператор сравнивает значения (в двоичном формате) каждого операнда и выдает значение, битовый шаблон которого показывает, какие биты в любом из операндов имеют значение 1. Если оба бита равны 0, результат этого бита равен 0; в противном случае результат равен 1.
Код в вашем случае может выглядеть следующим образом:
public class Intent {
// define flag constants
public static final int FLAG_ACTIVITY_NEW_TASK = 1;
public static final int FLAG_GRANT_READ_URI_PERMISSION = 2;
private int flags;
public void setFlags(int flags) {
this.flags = flags;
}
}
Впоследствии вы можете вызвать метод следующим образом:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
Вы можете узнать больше о побитовых операторах в официальной документации Java или посмотреть эти руководства:
Комментарии:
1. Я думаю, я понимаю — он просто еще не щелкнул. Я могу и пишу код, используя его без колебаний, но я хочу, чтобы он интуитивно имел смысл. Я приму этот ответ через некоторое время и спасибо за его написание.