android程序运行崩溃,然后不能全部退出
我原先是在跳转activity的时候将activity加入基类的activity集合中,退出时,去清除List中的所有的activity。 Java code?123456789101112131415161718192021222324 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的。但是这里就发现了一个问题。 就是当我的程序运行出错而导致崩溃的时候,他会自动关闭现在这个程序,而去再打开一个新的程序(我猜测是这样,等待大神帮我解惑!),然后现在我点退出的话,就需要连续点很多次退出了。因为我每个页面都有一个退出按钮,这样的话,点击一个退出,他回到上个页面,并没玩完全退出整个程序。求大神帮助解决! 新的程序的activity对象和原来崩溃的程序的activity对象不一样。所以退出的时候exit()方法就没用了。 你的addActivity方法在哪里调用的? 还有,你的这个数据结构用的不对。最好用set或者map来管理activity。 否则当你多次启动一个activity的时候,会往list里面加入同一个对象,造成内存泄露。 加一个全局的异常捕获,在崩溃的时候,把activitylist清空,做得更好点的话,把机型、时间、安卓版本、异常信息发送回服务器,分析分析 他这个有个问题是这样的,比如我开始在我的activity中跳转了100次,程序崩溃后,我就需要点击100次退出才能完全退出这个程序。而且有可能你上次退出程序时,并没玩完全退出,程序崩溃后,就会去后台将没有完全退出的线程重新启动,然后就会有可能不能完全退出?有没有这个可能性?
|