Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
1

Не вызывается активность используя разный подход запуска Intent

02.06.2013, 14:56. Просмотров 1262. Ответов 19
Метки нет (Все метки)

У меня таким образом:

Java
1
2
startActivity(new Intent(getActivity(), MainActivity.class)); 
getActivity().finish();
код переходит на MainActivity.

а вот таким образом, не переходит:
Java
1
2
3
4
Intent intent = new Intent(getActivity(), MainActivity.class); 
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                intent.putExtra("finish", true); 
                startActivity(intent)
;

почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 14:56
Ответы с готовыми решениями:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
Выдает такую ошибку, хотя смартфон видит, он разрешает отладку, при запуске...

Starting: Intent { act=android.intent.action.MAIN. и пустой белый экран
При запуске приложения всё заканчивается на Starting: Intent {...

Разный результат запуска программы через автозагрузку и вручную
И снова здравствуйте. На последнем этапе работы возникла очередная проблема,...

Можно ли это сделать используя асинхронный подход?
Есть список ссылок. Нужно получить содержимое каждой ссылки. Напрашиваются...

Графика: Нарисовать визитку, используя разный шрифт, цвет и направление текста.
1. Нарисовать визитку.использовать разный шрифт, цвет и направление текста. 2....

19
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 15:00 2
Цитата Сообщение от Stylish2013 Посмотреть сообщение
Java
1
intent.putExtra("finish", true);
может это приводит к ее закрытию прежде чем вы ее увидите?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 15:05  [ТС] 3
Цитата Сообщение от V0v1k Посмотреть сообщение
может это приводит к ее закрытию прежде чем вы ее увидите?
может, а как это узнать? и что нужно изменить чтобы это не происходило?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 15:40 4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
может, а как это узнать? и что нужно изменить чтобы это не происходило?
смотрите свой код.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 16:28  [ТС] 5
подебажив:

Интент перенаправляет на Main Activity. При переходе, строчка:
Java
1
protected void onCreate(Bundle savedInstanceState){
в ней savedInstanceState равно null

далее:
Java
1
        if (getIntent().getBooleanExtra("finish", false)) finish();
Лог таким образом Log.d(LOG_TAG, "oncreate"+(getIntent().getBooleanExtra("finish", false))); - выдает true.
но почему-то не закрывает ничего.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 16:36 6
ну так MainActivity и закрывается.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 16:40  [ТС] 7
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так MainActivity и закрывается.
Так а должно же, быть что весь стек закроется а эта активность (MainActivity) запустится. Или я что-то не так понял?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 16:47 8
этот код

Цитата Сообщение от Stylish2013 Посмотреть сообщение
if (getIntent().getBooleanExtra("finish", false)) finish();
закрывает MainActivity
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 16:50  [ТС] 9
Я всё перепутал. Может скажbте как закрыть все что было открыто (активности, фрагменты) и запустить только MainActivity? Наверное это где-то рядом?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 16:55 10
просто выбросьте этот код

Цитата Сообщение от Stylish2013 Посмотреть сообщение
if (getIntent().getBooleanExtra("finish", false)) finish();
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 16:59  [ТС] 11
Цитата Сообщение от V0v1k Посмотреть сообщение
просто выбросьте этот код
таким образом он переходит на MainActivity, но при этом ничего не закрывает за собой
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 17:06 12
Java
1
2
3
4
Intent intent = new Intent(getActivity(), MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent);
finish();
и все должно закрываться...
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 17:13  [ТС] 13
Цитата Сообщение от V0v1k Посмотреть сообщение
и все должно закрываться...
Переходит на новую активность, но почему-то при таком коде, по кнопке back промежуточное активити (TabActivity) остается.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 19:41 14
попробуйте
Java
1
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 20:19  [ТС] 15
Цитата Сообщение от V0v1k Посмотреть сообщение
попробуйте
тоже не закрывает. ( Может оно находится как-то в другом расположении в стеке и поэтому его не закрывает? или может в памяти хранится две копии? можно дважды вызвать закрытие всего?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 20:25 16
не знаю, у меня работало, попробуйте просто не оставлять никаких активитей при переходах.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 20:45  [ТС] 17
Цитата Сообщение от V0v1k Посмотреть сообщение
не знаю, у меня работало, попробуйте просто не оставлять никаких активитей при переходах.
так ничего стараюсь не оставлять, прямиком всё делаю. Вошёл, добрался до кнопки которая должна запустить эту активность и всё нажимаю её. А прохожу я через ТабАктивити, нажимаю на одну вкладку-активность, она содержит фрагмент, а из этого фрагмента я уже запускаю новую активность, после которой ничего не должно остаться.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 20:56 18
ну так закрывайте ТабАктивити при запуске новой активити из фрагмента. в чем проблема?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
02.06.2013, 21:10  [ТС] 19
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так закрывайте ТабАктивити при запуске новой активити из фрагмента. в чем проблема?
Я бы с удовольствием, но мне нужно её закрыть только в том случае если пользователь нажмёт в фрагменте кнопку выхода (которая собственно и должна всё закрывать), а если он не нажмет? а решит выбрать другую кнопку или просто вернуться, а табАктивити то уже закрыта.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.06.2013, 21:12 20
ну так открывайте ее заново при попытке к ней вернуться.
0
02.06.2013, 21:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2013, 21:12

Окно настройки принтера не вызывается через меню, но вызывается по кнопке
Доброго времени суток. Помогите разобраться. Подключаю к программе принтер,...

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C {...

Запрет запуска диспетчера задач, используя реестр
Здравствуйте. Как запретить вызов диспетчера задач,либо отключить используя...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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