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

StartActivity и finish

18.11.2014, 21:48. Просмотров 1666. Ответов 5
Метки нет (Все метки)

Здравствуйте.

В общем надо запустить Activity а потом закрыть его из вне, хочу вот так:
Java
1
2
context.startActivity(MyActivity.getIntent());
MyActivity.finish();
но это не работает. Есть решение проблемы?

P.S. Закрывать его изнутри умею, но это мне в данной ситуации не подходит.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 21:48
Ответы с готовыми решениями:

StartActivity() не закрывается
Здравствуйте. Чтобы перейти на другую Activity можно использовать...

BroadcastReceiver и startActivity
У меня есть служба и BroadcastReceiver. Когда приходит событие, то я вызываю...

startActivity. Source not found
public void openOptions() { Intent intent=new Intent(this,Game.class);...

Ошибка приложения при вызове startActivity из другого класса
Возникла проблема, программа валится при вызове метода enableBt() Класс со...

Приложение падает после вызова finish
Подскажите плз как. Такого я чес слово не ожидал, честно искал в сети не нашел....

5
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,734
19.11.2014, 15:24 2
furyon, привет! Попробуйте в MyActivity создать метод:
Java
1
2
3
public void closeActivity() {
    finish();
}
Если его вызвать из другого места, сработает?
0
furyon
7 / 7 / 2
Регистрация: 12.04.2011
Сообщений: 318
19.11.2014, 15:30  [ТС] 3
Я пробовал, не работает.

Добавлено через 1 минуту
Пока что сделал некрасивым путем, когда надо закрыть я стартую еще раз это же активити с флагом FLAG_ACTIVITY_CLEAR_TASK, и через putExtra передаю статус что мол надо закрыть. Работает только не оч красиво, вылезает новое окошко и потом только все закрывается.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
19.11.2014, 15:41 4
Лучший ответ Сообщение было отмечено furyon как решение

Решение

1. Пишем свой менеджер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import android.app.Activity;
 
import java.util.HashMap;
import java.util.Map;
 
public class FinishManager {
    private static final Map<Class<? extends Activity>, Activity> list = new HashMap<Class<? extends Activity>, Activity>();
 
    public static void addActivity(Activity activity) {
        list.put(activity.getClass(), activity);
    }
 
    public static void finishActivity(Class<? extends Activity> clazz) {
        Activity activity = list.remove(clazz);
        if (activity != null && !activity.isFinishing()) {
            activity.finish();
        }
    }
 
}
2. В активити, которую нужно закрыть:

Java
1
FinishManager.addActivity(this);
3. Из активити, которая должна закрыть:
Java
1
FinishManager.finishActivity(MyActivity.class);
2
furyon
7 / 7 / 2
Регистрация: 12.04.2011
Сообщений: 318
19.11.2014, 15:52  [ТС] 5
Большое спасибо, 2е суток сидел, отчаился на форум написал. Сделал как попало, щас переделаю красиво.
0
Vladimirys
315 / 211 / 28
Регистрация: 16.01.2010
Сообщений: 618
19.11.2014, 16:15 6
И такой есть вариант. Для двух активностей работает.
В первой (которую нужно закрыть из второй).
Java
1
2
3
4
public static Activity first;
В onCreate(){
first=this;
}
Во второй, из которой нужно закрыть первую.
Java
1
 Activity(имя первой активити).first.finish();
1
19.11.2014, 16:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 16:15

Везде ли выполняется метод finish() для закрытия activity
После startActivityForResult в другой activity не срабатывает метод finish();,...

При создании проекта недоступна кнопка Finish на последнем этапе
3дравствуйте, я столкнулся со странной проблемой, когда впервые открыл Android...

finish.exe
переставила на работе на двух компах винду, соответственно левую, после этого,...


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

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

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