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

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

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

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

02.10.2016, 01:27. Просмотров 346. Ответов 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);
        }
    };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2016, 01:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Старт активити из другого потока (Программирование Android):

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

Работа с Handler из другого активити - Программирование Android
Здравствуйте, пишу чат приложение и не могу понять как можно обрабатывать входящие сообщение из другого активити. У меня есть форма...

Обращение к элементам активити из другого класса - Программирование Android
Добрый день. Ломаю голову битый час, все не могу понять, почему у меня не получается. Опишу по шагам. Создал проект андроид (в эклипсе),...

Не отображается игровое поле после выхода из другого активити - Программирование Android
Когда я выхожу из другого активити и пытаюсь зайти в игру,котороe у меня в главном активити,игровое поле не отображается. вот мой код.в...

Как изменится стек после вызова активити другого приложения - Программирование Android
Если у меня есть 2 задачи(2 Task) и я из первой задачи вызову активити, которое находится в стеке второй задачи, то у меня то активити...

13
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
02.10.2016, 06:25 #2
покажите на чем вылетает
0
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 09:26  [ТС] #3
На вот этой строчке
Java
1
startActivity(intent);
0
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
02.10.2016, 09:29 #4
я имел ввиду лог
0
OlegJV
103 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 472
02.10.2016, 09:50 #5
По такому кусочку кода ничего не поймешь.
Попробуй добавить:
Java
1
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
0
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 10:19  [ТС] #6
shavuz,
LogCat молчит, как партизан...
OlegJV,
Там больше ничего и нету ��
0
shavuz
110 / 116 / 22
Регистрация: 29.01.2014
Сообщений: 575
02.10.2016, 10:21 #7
вылетает и лог молчит?? странно. может выбрать только эрор ? попробуйте вставить в RunOnUIThread запуск активити. но без лога не уверен
0
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
02.10.2016, 10:44 #8
в логе 100% должно быть сообщение, смотри внимательно, тут раз в две недели обязательно что-то приходит и начинает рассказывать что в логе нет ничего, а потом оказывается что есть

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

без логов - неблагодарное гадание
0
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);
Не помогло
0
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
02.10.2016, 13:52 #10
Цитата Сообщение от danyasworld Посмотреть сообщение
Всё что набежало
не верю
0
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
02.10.2016, 13:58  [ТС] #11
Паблито, хотите верьте, хотите - нет... Но это факт, именя это тоже удивляет
0
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
02.10.2016, 14:07 #12
надо видеть манифест и webview класс...что бы там ни было
0
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" и всё заработало.
Разве есть ограничения на размер текста?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.10.2016, 23:24 #14
Цитата Сообщение от danyasworld Посмотреть сообщение
Разве есть ограничения на размер текста?
Есть, но гораздо больше 8 Кб (или 8 тысяч строк непонятной длины).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2016, 23:24
Привет! Вот еще темы с ответами:

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

Редактирование элементов layout из другого потока - Программирование Android
Подскажите, как максимально просто редактировать элементы layout из другого потока. К примеру, есть код: new Thread(new Runnable()...

Передача объекта обратно в главный поток из другого потока - Программирование Android
Добрый день. У меня ест фрагмент в котором я запускаю новый поток, после этого я хочу вернуть объект из этого потока в главный поток,...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
02.10.2016, 23:24
Ответ Создать тему
Опции темы

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