我有一个应用程序,当一个“游戏”统计,它启动几个不同的线程.我开始这样的线程:
Thread thread = new Thread(new Runnable() { public void run() { //... } }); thread.setName("killMeAtEnd"); thread.start();
稍后当游戏结束时,我在游戏内部有一个dispose()方法,它对所有正在运行的线程进行排序,并结束所有名为“killMeAtEnd”的线程.我的问题是,这是一个好习惯吗?我的目的是保持我的应用程序快速运行并且杂乱无章,根据我的经验,留下“悬挂”的线程会降低手机的速度,直到应用程序终止.有一个更好的方法吗?这甚至值得打扰吗?
编辑:
如果有人有兴趣,这是我的dispose().此代码在Game类中.
public void dispose() { Thread threads[] = (Thread[])Thread.getAllStackTraces().keySet().toArray(); for(int x=0;x<threads.length;x++) { Thread thread = threads[x]; if(thread.getName().equalsIgnoreCase(KILL)) { try { thread.interrupt(); }catch(Exception e){Log.e(Viewer.GAME,Log.getStackTraceString(e));} thread = null; } } } public static final String KILL = "endOnDispose";