У меня есть MainActivity, который является Activity и другим классом (который представляет собой простой Java-класс), мы назовем его «SimpleClass». теперь я хочу запустить из этого класса команду startActivityForResult.
теперь я могу передать этот класс (SimpleClass), только контекст MainActivity, проблема в том, что вы не можете запустить context.startActivityForResult (...);
так что единственный способ заставить SimpleClass использовать startActivityForResult; - передать ссылку MainActivity в качестве переменной Activity в SimpleClass примерно так:
внутри класса MainActivity я создаю экземпляр SimpleClass следующим образом:
SimpleClass simpleClass=new SimpleClass(MainActivity.this);
вот как выглядит SimpleClass:
public Class SimpleClass {
Activity myMainActivity;
public SimpleClass(Activity mainActivity) {
super();
this.myMainActivity=mainActivity;
}
....
public void someMethod(...) {
myMainActivity.startActivityForResult(...);
}
}
теперь он работает, но разве это не правильный способ сделать это? Боюсь, у меня могут быть утечки памяти в будущем.
Благодарю. луч.