Филтър за преминаване на намерения и активност

Имам скрит филтър за намерения, който обработва magnet: връзки към схема, като отваря намерение за преглед с уеб браузъра по подразбиране. В момента това има ефекта, че щракването върху магнитна връзка изхвърля потребителя от браузъра към моята дейност, което незабавно го връща обратно в браузъра с нов URI.

Как да скрия превключвателя за приложения? Няма какво да се види в дейността, която се появява само за пренасочване обратно към браузъра.

Натискането на назад след кацане на новата страница в браузъра връща потребителя обратно към началния екран. Искам да се върне към оригиналната страница, където е щракнато върху магнитната връзка.

Ето кода в onCreate за дейността по обработка

String uri = "https://some.site";
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(browserIntent);

Опитах няколко флага и finish(), които не постигнаха желания ефект. Вярвам, че искам да изоставя текущата задача (тази, която инициира намерението на браузъра), така че обратното ще се върне директно към предишната задача. Но както бе споменато по-горе, в момента това просто връща потребителя обратно към началния екран.


person Matt Joiner    schedule 23.04.2016    source източник


Отговори (1)


Как да скрия превключвателя за приложения? Няма какво да се види в дейността, която се появява само за пренасочване обратно към браузъра.

Използвайте Theme.Translucent.NoTitleBar, за да имате невидима дейност. Не се обаждайте на setContentView() в onCreate(), а в края на onCreate() се обаждайте на finish(). Някъде преди finish() вземете вашата част от кода от вашия въпрос.

Вярвам, че искам да изоставя текущата задача (тази, която инициира намерението на браузъра), така че обратното ще се върне директно към предишната задача. Но както бе споменато по-горе, в момента това просто връща потребителя обратно към началния екран.

Тъй като не сте написали уеб браузъра, управлението на задачите е извън вашия контрол, наистина. Ако уеб браузърът, стартиращ вашата дейност, ви поставя в отделна задача, това е решението на уеб браузъра. Няма начин да кажете „не, искам да остана в задачата на уеб браузъра“, AFAIK. И имайте предвид, че поведението тук може да варира според браузъра.

person CommonsWare    schedule 23.04.2016
comment
Това решава частта за дейността, ще попитам връщане към предишна задача в друг въпрос, сега е по-ясно. - person Matt Joiner; 23.04.2016