У меня есть 4 различных вида деятельности, и, пройдя по ссылкам, я создал образец для этого.
Objective:
Activities A,B,C,D;
A -> B -> C -> D
Событие в D заставляет C
и D
выскочить Оставляя A and B
в стеке.
Событие в D может вызвать B
C
и D
кPOP оставляя только A
в стеке.
Implementation:
Я использую следующее Событие для своих первых трех действий, т.е. A B C
if(v==buttonNext){
Intent secondAct=new Intent(FirstActivity.this, SecondActivity.class);
//storing the Stack
MaintainMyStack.addBackActivity(this);
startActivity(secondAct);
}
Я используюследующее событие для моего четвертого акта.т. е. D
if(v==btnBack){
finish();//finishes "D"
Activity act=MaintainMyStack.getBackActivity();
act.finish(); //finishes last in stack i.e. "C"
}
Я использую этот общий класс среди моих A B C D
занятий.
public class MaintainMyStack {
private static Stack<Activity> classes = new Stack<Activity>();
public static Activity getBackActivity() {
return classes.pop();
}
public static void addBackActivity(Activity c) {
classes.push(c);
}
}
Он работает как хотелось бы, но я просто обеспокоен классом MaintainMyStack
Может произойти утечка памяти, когда она встречается с реальным сценарием. Пожалуйста, предложите мне использовать этот подход или у нас есть другие варианты для реализации того же.Как я могу создать MaintainMyStack
только один экземпляр без утечки памяти