Сколько mayLaunchUrl мы можем запустить одновременно?
Я пытаюсь использовать ChromeCustomTabs в нашем проекте. Я столкнулся с несколькими проблемами, когда я использовал mayLaunchUrl. Я проверил код, который Google имеет на github. Я просто настроил кнопку для тестирования mayLaunchURL (функция prerender), когда я искал трафик с помощью инструмента Chrome Dev. Я сделал трафик и вкладку получил триггер и URL-адрес был загружен (это просто вызов GET с параметрами). Однако, когда я нажимаю на него несколько раз (после 8-10 раз, каждый раз с разными параметрами), он перестает работать. Я перестаю видеть запросы разосланы. (Не видно ни в Chrome Dev Tool, ни в Proxy, который я настроил).
Интересно, существует ли ограничение времени (ограничения) для функции mayLaunchURL, другими словами, сколько страниц мы можем предварительно отрендерить в этом случае? Есть ли способ вручную отменить страницу предварительной визуализации и освободить ресурс?
Есть ли ограничение по времени для bindCustomTabsService? Чтобы вызвать mayLaunchURL, я должен был выполнить действие и убить его, как только я закончу вкладку. Могу ли я связывать сервис каждый раз, даже когда я "убиваю (заканчиваю)" каждый раз?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
customTabActivityHelper = new CustomTabActivityHelper();
customTabActivityHelper.setConnectionCallback(this);
}
@Override
protected void onStart() {
super.onStart();
customTabActivityHelper.bindCustomTabsService(this);
}
@Override
public void onCustomTabsConnected() {
Boolean mayLaunchUrlAccepted = customTabActivityHelper.mayLaunchUrl(Uri.parse(“the URL?f=“+params), null, null);
// the mayLaunchUrlAccepted always return true in my case. Even when there is no request sent.
}
1 ответ
Да, mayLaunchURL() очень дороги с точки зрения батареи / ОЗУ / сети, поэтому он регулируется на уровне UID приложения. Но ограничения исчезают через некоторое время.
Лучшая стратегия - использовать mayLaunchURL (), если уверенность в том, что пользователь перейдет по URL, очень высока.
Существует "низкий уровень доверия" mayLaunchURL(), который не регулируется, но выполняет более ограниченный набор действий (в настоящее время предварительное соединение, не указано, которое может измениться). Низкая достоверность mayLaunchURL вызывается предоставлением нулевого значения в качестве uri и списка URL-адресов в otherLikelyBundles.