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

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

Войти
Регистрация
Восстановить пароль
 
furyon
7 / 7 / 0
Регистрация: 12.04.2011
Сообщений: 315
#1

StartActivity и finish - Программирование Android

18.11.2014, 21:48. Просмотров 1267. Ответов 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 и finish (Программирование Android):

StartActivity() не закрывается - Программирование Android
Здравствуйте. Чтобы перейти на другую Activity можно использовать startActivity() как нить так public void onClick(View v) { Intent...

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

startActivity. Source not found - Программирование Android
public void openOptions() { Intent intent=new Intent(this,Game.class); startActivity(intent); } При вызове startActivity...

Ошибка приложения при вызове startActivity из другого класса - Программирование Android
Возникла проблема, программа валится при вызове метода enableBt() Класс со static методами: package my.bluetooth; import...

Приложение падает после вызова finish - Программирование Android
Подскажите плз как. Такого я чес слово не ожидал, честно искал в сети не нашел. Даже не думал что будут проблемы. switch...

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

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

Добавлено через 1 минуту
Пока что сделал некрасивым путем, когда надо закрыть я стартую еще раз это же активити с флагом FLAG_ACTIVITY_CLEAR_TASK, и через putExtra передаю статус что мол надо закрыть. Работает только не оч красиво, вылезает новое окошко и потом только все закрывается.
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
19.11.2014, 15:41 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 / 0
Регистрация: 12.04.2011
Сообщений: 315
19.11.2014, 15:52  [ТС] #5
Большое спасибо, 2е суток сидел, отчаился на форум написал. Сделал как попало, щас переделаю красиво.
0
Vladimirys
309 / 206 / 25
Регистрация: 16.01.2010
Сообщений: 589
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 на последнем этапе - Программирование Android
3дравствуйте, я столкнулся со странной проблемой, когда впервые открыл Android Studio. При со3дании проекта на последнем этапе я не...

Find:=ia[i,j]=Finish - Pascal
Find:=ia=Finish это строка обозначает if(ia=Finsh) then Find=true; else Find= false; Find - boolean так или не так я понимаю эту...

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

Файл C:\WINDOWS\Finish.exe - Удаление вирусов
Файл C:\WINDOWS\Finish.exe инфицирован троян BAT/DelFiles.NAG. Файл может быть удален. Рекомендуется сделать копии любых критических данных...


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

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

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