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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
#1

Старт активити из другого потока - Программирование Android

02.10.2016, 01:27. Просмотров 317. Ответов 13

Добрый вечер! У меня есть Активити, с кнопкой, по клику на которую стартует тред, из которого нужно запустить новые активити для отображения данных. При старте треда я передаю ему данные о запустившей его активити. В активити есть хэндлер, который принимает данные из потока и на их основе запускает активи. Всё бы ничего, но если дёргать метод из потока, то приложение просто вылетает, а если запуск активити запросить сразу в активити по клику кнопки - всё работает.
Из потока вызывается метод startBrowser. Просто вызывается. Представленный ниже код находится в мэйнАктивити
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public void startBrowser(String html)
    {
        Bundle b = new Bundle();
        Message m = new Message();
        b.putString("html",html);
        m.setData(b);
        handler.sendMessage(m);
    }
    Handler handler =  new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
            Intent intent = new Intent(MainActivity.this,webview.class);
            intent.putExtra("html",msg.getData().getString("html"));
            startActivity(intent);
        }
    };
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2016, 01:27     Старт активити из другого потока
Посмотрите здесь:
Android Отображение активити поверх другого активити
Android Изменение параметров активити из другого активити
Android Работа с Handler из другого активити
Android Обращение к элементам активити из другого класса
Android Не отображается игровое поле после выхода из другого активити
Как изменится стек после вызова активити другого приложения Android
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
101 / 107 / 20
Регистрация: 29.01.2014
Сообщений: 534
02.10.2016, 06:25     Старт активити из другого потока #2
покажите на чем вылетает
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 09:26  [ТС]     Старт активити из другого потока #3
На вот этой строчке
Java
1
startActivity(intent);
shavuz
101 / 107 / 20
Регистрация: 29.01.2014
Сообщений: 534
02.10.2016, 09:29     Старт активити из другого потока #4
я имел ввиду лог
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
02.10.2016, 09:50     Старт активити из другого потока #5
По такому кусочку кода ничего не поймешь.
Попробуй добавить:
Java
1
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 10:19  [ТС]     Старт активити из другого потока #6
shavuz,
LogCat молчит, как партизан...
OlegJV,
Там больше ничего и нету ��
shavuz
101 / 107 / 20
Регистрация: 29.01.2014
Сообщений: 534
02.10.2016, 10:21     Старт активити из другого потока #7
вылетает и лог молчит?? странно. может выбрать только эрор ? попробуйте вставить в RunOnUIThread запуск активити. но без лога не уверен
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
02.10.2016, 10:44     Старт активити из другого потока #8
в логе 100% должно быть сообщение, смотри внимательно, тут раз в две недели обязательно что-то приходит и начинает рассказывать что в логе нет ничего, а потом оказывается что есть

что такое webview ?
что, класс так и называется с маленькой буквы? он наследуется от AppCompatActivity?

без логов - неблагодарное гадание
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 11:45  [ТС]     Старт активити из другого потока #9
Цитата Сообщение от Паблито Посмотреть сообщение
что, класс так и называется с маленькой буквы?
Теперь с большой
Цитата Сообщение от Паблито Посмотреть сообщение
он наследуется от AppCompatActivity?
android.app.Activity
Цитата Сообщение от Паблито Посмотреть сообщение
без логов - неблагодарное гадание
Всё что набежало
Кликните здесь для просмотра всего текста

10-02 11:36:07.584 26519-26669/butbot.daquga.buybot I/DpmTcmClient: RegisterTcmMonitor from: com.android.okhttp.TcmIdleTimerMonitor
10-02 11:36:08.896 26519-26519/butbot.daquga.buybot I/Timeline: Timeline: Activity_launch_request id:butbot.daquga.buybot time:98932126
10-02 11:43:48.195 28510-28510/butbot.daquga.buybot W/System: ClassLoader referenced unknown path: /data/app/butbot.daquga.buybot-2/lib/arm64
10-02 11:43:49.047 28510-28510/butbot.daquga.buybot W/System: ClassLoader referenced unknown path: /data/app/butbot.daquga.buybot-2/lib/arm64
10-02 11:43:49.133 28510-28602/butbot.daquga.buybot D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
10-02 11:43:49.201 28510-28602/butbot.daquga.buybot I/Adreno: QUALCOMM build : bf7710d, I0bc8e21cf2
Build Date : 03/09/16
OpenGL ES Shader Compiler Version: XE031.06.00.02
Local Branch :
Remote Branch : quic/LA.BF64.1.2.2_rb4.28
Remote Branch : NONE
Reconstruct Branch : NOTHING
10-02 11:43:49.204 28510-28602/butbot.daquga.buybot I/OpenGLRenderer: Initialized EGL, version 1.4
10-02 11:43:49.513 28510-28510/butbot.daquga.buybot I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@fcc757f time:99392743
10-02 11:43:53.421 28510-29243/butbot.daquga.buybot I/DpmTcmClient: RegisterTcmMonitor from: com.android.okhttp.TcmIdleTimerMonitor
10-02 11:43:54.532 28510-28510/butbot.daquga.buybot I/Timeline: Timeline: Activity_launch_request id:butbot.daquga.buybot time:99397762

Цитата Сообщение от OlegJV Посмотреть сообщение
Попробуй добавить:
Java
1
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Не помогло
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
02.10.2016, 13:52     Старт активити из другого потока #10
Цитата Сообщение от danyasworld Посмотреть сообщение
Всё что набежало
не верю
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 13:58  [ТС]     Старт активити из другого потока #11
Паблито, хотите верьте, хотите - нет... Но это факт, именя это тоже удивляет
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
02.10.2016, 14:07     Старт активити из другого потока #12
надо видеть манифест и webview класс...что бы там ни было
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 15:59  [ТС]     Старт активити из другого потока #13
Цитата Сообщение от Паблито Посмотреть сообщение
надо видеть манифест и webview класс...что бы там ни было
С ними всё в порядке... Кажись нашел проблему.
Java
1
intent.putExtra("html",msg.getData().getString("html"));
Вот в этом месте, в "боевом" режиме передаётся около 8к строк. Для проверки я заменил стринг из msg на константу "some text" и всё заработало.
Разве есть ограничения на размер текста?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2016, 23:24     Старт активити из другого потока
Еще ссылки по теме:
Как вызвать метод в активити классе из обычного не активити класса? Android
Android Редактирование элементов layout из другого потока
Передача объекта обратно в главный поток из другого потока Android
Вызов новой активити не из класса активити Android
Android Старт формы №2

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

Или воспользуйтесь поиском по форуму:
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.10.2016, 23:24     Старт активити из другого потока #14
Цитата Сообщение от danyasworld Посмотреть сообщение
Разве есть ограничения на размер текста?
Есть, но гораздо больше 8 Кб (или 8 тысяч строк непонятной длины).
Yandex
Объявления
02.10.2016, 23:24     Старт активити из другого потока
Ответ Создать тему
Опции темы

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