У меня есть 2 объекта-намерения Android, которые можно сохранить в виде URL-адресов, а затем перевести обратно в объекты-намерения.Мне интересно, каков наиболее эффективный способ сравнить любые 2 объекта намерения, чтобы убедиться, что они в конечном итоге разрешают одно и то же действие с одинаковыми параметрами и т. Д. Использование intent.filterEquals
делает это, но не включает в себя дополнительные функции.
В настоящее время мой код для метода equals
выглядит следующим образом:
Intent a = Intent.parseUri(this.intentUrl,
Intent.URI_INTENT_SCHEME);
Intent b = Intent.parseUri(other.intentUrl,
Intent.URI_INTENT_SCHEME);
if (a.filterEquals(b)) {
if (a.getExtras() != null && b.getExtras() != null) {
for (String key : a.getExtras().keySet()) {
if (!b.getExtras().containsKey(key)) {
return false;
} else if (!a.getExtras().get(key)
.equals(b.getExtras().get(key))) {
return false;
}
}
}
// all of the extras are the same so return true
return true;
} else { return false; }
Но есть ли лучший / более чистый способ?