我原先是在跳转activity的时候将activity加入基类的activity集合中,退出时,去清除List中的所有的activity。
public class MyApplication extends Application{
private static MyApplication instance; private List<Activity> activitylist=new LinkedList<Activity>(); public static MyApplication getInstance(){
if(null==instance){
instance = new MyApplication();
}
return instance;
} public void addActivity(Activity activity){
activitylist.add(activity);
} public void exit(){
for(Activity ac:activitylist){
ac.finish();
}
System.exit(0);
}
}
开始时这样去退出所有activity的。但是这里就发现了一个问题。
就是当我的程序运行出错而导致崩溃的时候,他会自动关闭现在这个程序,而去再打开一个新的程序(我猜测是这样,等待大神帮我解惑!),然后现在我点退出的话,就需要连续点很多次退出了。因为我每个页面都有一个退出按钮,这样的话,点击一个退出,他回到上个页面,并没玩完全退出整个程序。求大神帮助解决!Android
public class MyApplication extends Application{
private static MyApplication instance; private List<Activity> activitylist=new LinkedList<Activity>(); public static MyApplication getInstance(){
if(null==instance){
instance = new MyApplication();
}
return instance;
} public void addActivity(Activity activity){
activitylist.add(activity);
} public void exit(){
for(Activity ac:activitylist){
ac.finish();
}
System.exit(0);
}
}
开始时这样去退出所有activity的。但是这里就发现了一个问题。
就是当我的程序运行出错而导致崩溃的时候,他会自动关闭现在这个程序,而去再打开一个新的程序(我猜测是这样,等待大神帮我解惑!),然后现在我点退出的话,就需要连续点很多次退出了。因为我每个页面都有一个退出按钮,这样的话,点击一个退出,他回到上个页面,并没玩完全退出整个程序。求大神帮助解决!Android
你的addActivity方法在哪里调用的?
还有,你的这个数据结构用的不对。最好用set或者map来管理activity。
否则当你多次启动一个activity的时候,会往list里面加入同一个对象,造成内存泄露。
他这个有个问题是这样的,比如我开始在我的activity中跳转了100次,程序崩溃后,我就需要点击100次退出才能完全退出这个程序。而且有可能你上次退出程序时,并没玩完全退出,程序崩溃后,就会去后台将没有完全退出的线程重新启动,然后就会有可能不能完全退出?有没有这个可能性?
他这个有个问题是这样的,比如我开始在我的activity中跳转了100次,程序崩溃后,我就需要点击100次退出才能完全退出这个程序。而且有可能你上次退出程序时,并没玩完全退出,程序崩溃后,就会去后台将没有完全退出的线程重新启动,然后就会有可能不能完全退出?有没有这个可能性?最好把你的崩溃bug修改掉。上线产品有异常退出的都是重大事故。VeryHight的bug等级的。不管怎样,程序不能崩溃。还有,在onCreate中add了必须要在onDestroy中给remove掉,否则每次打开activity,list都会增加一个实例,久而久之heap就满了。就会抛出OOM异常。
他这个有个问题是这样的,比如我开始在我的activity中跳转了100次,程序崩溃后,我就需要点击100次退出才能完全退出这个程序。而且有可能你上次退出程序时,并没玩完全退出,程序崩溃后,就会去后台将没有完全退出的线程重新启动,然后就会有可能不能完全退出?有没有这个可能性?最好把你的崩溃bug修改掉。上线产品有异常退出的都是重大事故。VeryHight的bug等级的。不管怎样,程序不能崩溃。还有,在onCreate中add了必须要在onDestroy中给remove掉,否则每次打开activity,list都会增加一个实例,久而久之heap就满了。就会抛出OOM异常。
大哥,他这个跳转activity,是不是就要清除掉跳转之前的activity?你说的这个onDestroy方法,不是垃圾回收器自动执行么?
他这个有个问题是这样的,比如我开始在我的activity中跳转了100次,程序崩溃后,我就需要点击100次退出才能完全退出这个程序。而且有可能你上次退出程序时,并没玩完全退出,程序崩溃后,就会去后台将没有完全退出的线程重新启动,然后就会有可能不能完全退出?有没有这个可能性?最好把你的崩溃bug修改掉。上线产品有异常退出的都是重大事故。VeryHight的bug等级的。不管怎样,程序不能崩溃。还有,在onCreate中add了必须要在onDestroy中给remove掉,否则每次打开activity,list都会增加一个实例,久而久之heap就满了。就会抛出OOM异常。
谢谢了,解决了,每次跳转activity的时候我都finish跳转前的activity,然后再设置一个全局捕获异常来处理异常信息!