Форум программистов, компьютерный форум CyberForum.ru

Android: как не перезагружать webview в activity при OnResume? - Android

Восстановить пароль Регистрация
 
mast67
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
19.03.2014, 17:38     Android: как не перезагружать webview в activity при OnResume? #1
Описание проблемы: есть activity A (основная android.intent.category.LAUNCHER). Есть activity B, в которой находится WebView с отображением формы ввода (например, форма авторизации какого либо сайта).

Пользователь запускает приложение - activity A, переходит в activity B с формой ввода (WebView). Вводит, например, логин и пароль в форму, затем сворачивает приложение (home button), открывает приложение заново (по иконке приложения в меню) - в результате запускается activity A.

Вопрос: Как запустить activity B с сохраненными введенными данными в форме (WebView) после сворачивания и открытия приложения (по иконке приложения в меню)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
19.03.2014, 22:47     Android: как не перезагружать webview в activity при OnResume? #2
Цитата Сообщение от mast67 Посмотреть сообщение
затем сворачивает приложение (home button), открывает приложение заново (по иконке приложения в меню) - в результате запускается activity A.
А у меня вот после этих манипуляций запустилась активити БЭ. Интент при помощи которого запускается активити БЭ имеет какие-то специфические флаги (FLAG_ACTIVITY_NO_HISTORY например) ?
mast67
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
19.03.2014, 23:43  [ТС]     Android: как не перезагружать webview в activity при OnResume? #3
Нет. Флагов нет. Пробовал и так и так. Можно скачать пример приложения http://developer.android.com/shareab...yLifecycle.zip. Так в нем тоже при сворачивании, а затем клике по иконке приложения запускается активити А.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
20.03.2014, 09:39     Android: как не перезагружать webview в activity при OnResume? #4
Цитата Сообщение от mast67 Посмотреть сообщение
Так в нем тоже при сворачивании, а затем клике по иконке приложения запускается активити А.
Откройте манифест и удалите строчку
XML
1
android:launchMode="singleTask"
mast67
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
20.03.2014, 10:31  [ТС]     Android: как не перезагружать webview в activity при OnResume? #5
Спасибо, все работает как надо!

Добавлено через 13 минут
Все равно какая то беда. Может изза телефона (nexus 5)? Запускаю Activity Lifecycle , стартую активити С - сворачиваю, затем запускаю через меню приложение, оно стартует с активити А

Добавлено через 8 минут
На эмуляторе тоже самое,
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.android.lifecycle"
      android:versionCode="1"
      android:versionName="1.0">
 
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />
    <application android:label="@string/app_name"
                 android:icon="@drawable/ic_launcher">
 
        <activity android:name=".ActivityA">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <activity android:name=".ActivityB" />
 
        <activity android:name=".ActivityC" />
 
        <activity android:name=".DialogActivity"
                  android:theme="@android:style/Theme.Dialog">
        </activity>
 
    </application>
</manifest>
Java
1
2
3
4
    public void startActivityC(View v) {
        Intent intent = new Intent(ActivityA.this, ActivityC.class);
        startActivity(intent);
    }
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
20.03.2014, 12:29     Android: как не перезагружать webview в activity при OnResume? #6
Цитата Сообщение от mast67 Посмотреть сообщение
Все равно какая то беда. Может изза телефона (nexus 5)? Запускаю Activity Lifecycle , стартую активити С - сворачиваю, затем запускаю через меню приложение, оно стартует с активити А
Только что проверил, у меня все работает как надо (Android 4.1)
mast67
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
20.03.2014, 12:34  [ТС]     Android: как не перезагружать webview в activity при OnResume? #7
Очень странно, у меня на эмуляторе 4.1 стартует с активити А. То есть это дефолтное поведение: включили активити а - перешли в активити б, свернули приложение, запустили приложение по иконке приложения - стартует последняя включенная активити (активити б)?
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
21.03.2014, 11:40     Android: как не перезагружать webview в activity при OnResume? #8
Цитата Сообщение от mast67 Посмотреть сообщение
То есть это дефолтное поведение: включили активити а - перешли в активити б, свернули приложение, запустили приложение по иконке приложения - стартует последняя включенная активити (активити б)?
Да, у меня работает именно так. Тоже самое если использовать активити ЦЭ вместо БЭ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 12:02     Android: как не перезагружать webview в activity при OnResume?
Еще ссылки по теме:

Как передать переменную с одной Activity в другой Android Studio Android
Android WebView некорректно загружает url (Android Studio)
Анимация открытия Activity в Android приложении Android
Метод фрагмента onResume() перестает вызываться после вызова метода recreate() для Activity Android
Android Android studio. Drawer activity

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mast67
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
21.03.2014, 12:02  [ТС]     Android: как не перезагружать webview в activity при OnResume? #9
Спасибо. Но у меня не всегда работает. Победил додавив код в стартовую активити (onCreate):
Java
1
2
3
4
        if (!isTaskRoot()) {
            finish();
            return;
        }
Вроде работает.
Yandex
Объявления
21.03.2014, 12:02     Android: как не перезагружать webview в activity при OnResume?
Ответ Создать тему
Опции темы

Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru