LINUX.ORG.RU

Закрывается активити

 ,


0

1

Добрый день. Начала пробовать себя в разработке приложений под android, но вот не пойму почему закрывается приложение у меня ;(

main.java

@android.webkit.JavascriptInterface
public void open(String url) {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);                                                                                                          
}

AndroidManifest.xml

<activity
    ...
    android:launchMode="singleTask">

При вызове функции open(url) как положено браузер открывается, но при нажатии на назад, не возвращаюсь в приложение, а почему то на домашний экран ;(


Activity не закрывается, а остаётся в своей таске. Браузер всегда запускается в новой таске или как новая вкладка в существующем инстансе.

As another example, the Android Browser application declares that the web browser activity should always open in its own task—by specifying the singleTask launch mode in the <activity> element. This means that if your application issues an intent to open the Android Browser, its activity is not placed in the same task as your application. Instead, either a new task starts for the Browser or, if the Browser already has a task running in the background, that task is brought forward to handle the new intent.

линк

Используй Chrome Custom Tabs как, например, всякие твиттеры-вконтакты.

mono ★★★★★ ()

Разве это приложение, которое открывает сайт? Нет бы нативное java разрабатывала с нормальными контроллами и view.

menangen ★★★★★ ()
Ответ на: комментарий от mono

Хм, не знал о таком. А как оно отрабатывает если хрома в системе нет?

ii8_ ★★★★ ()

А JavaScript тут причём?

EXL ★★★★★ ()

И причем тут javascript? Ставьте пожалуйста соответствующие тэги плиз.

ktan ★★★ ()
Ответ на: комментарий от ii8_

Да, EXL прав.

Возникает вопрос – а зачем так усложнять, если можно в обоих случаях использовать webview? Потому что в случае Chrome Custom Tabs подцепляются пользовательские кукесы, пароли и прочее, что сильно упрощает жизнь во всяких там авторизациях через OAuth.

mono ★★★★★ ()
Ответ на: комментарий от mono

Ага. Собственно это и заставило переключиться с лисы на хром как на десктопе так на смартфоне. Скучаю по лисе.. *эх*

ii8_ ★★★★ ()
Последнее исправление: ii8_ (всего исправлений: 1)
Ответ на: комментарий от EXL

Пробовала в build.gradle добавить

compile 'com.android.support:customtabs:23.3.0'
Получаю ошибку
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not find com.android.support:customtabs:23.3.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/customtabs/23.3.0/customtabs-23.3.0.pom
         https://jcenter.bintray.com/com/android/support/customtabs/23.3.0/customtabs-23.3.0.jar
Так же пробовала вместо 23.3.0 указать 24.2.1, ошибка та же

jessgt ()
Ответ на: комментарий от ii8_

Ага. Собственно это и заставило переключиться с лисы на хром как на десктопе так на смартфоне. Скучаю по лисе.. *эх*

А я наоборот везде на лисе - ненавижу рекламу, а Chrome на Android без расширений:(

Athor ★★ ()
Ответ на: комментарий от mono

Chrome custom tabs самая противная фигня, как по мне, так и по мнению многих моих знакомых.) И дело не в каких-либо технических недостатках или достоинтсвах, а просто потому что не слишком удобно и работает отдельно от остального хрома.

Deleted ()
Ответ на: комментарий от Deleted

а просто потому что не слишком удобно и работает отдельно от остального хрома.

И мне как разработчику сразу стало понятно, что ты имеешь в виду и что не нравится твоим знакомым, и я метнулся козочкой всё переделывать в своих приложениях.

Что именно-то не так? И как должно быть в идеале?

mono ★★★★★ ()
Ответ на: комментарий от mono

Просто открывать браузер. Зачем открывается эта недовкладка я просто не понимаю.

Deleted ()
Ответ на: комментарий от mono

Пробовала в build.gradle добавить

compile 'com.android.support:customtabs:23.3.0' Получаю ошибку

Could not resolve all dependencies for configuration ':app:_debugCompile'.

> Could not find com.android.support:customtabs:23.3.0. Searched in the following locations: https://jcenter.bintray.com/com/android/support/customtabs/23.3.0/customtabs-... https://jcenter.bintray.com/com/android/support/customtabs/23.3.0/customtabs-... Так же пробовала вместо 23.3.0 указать 24.2.1, ошибка та же

jessgt ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.