android 线程 销毁 问题

最近在做一个android上的游戏,用到了多个线程,当一切准备基本完成时出现了一个小问题,选择退出时finish掉了一个Activity但是里面的线程却没办法结束掉,因此就算退出了游戏等到线程结束时该执行的页面还是会跳出一个Activity,原来finish一个Activity并不能结束掉一个线程,于是我又尝试thread.stop()方法,还是没有效果,thread.distroy()方法总会显示出错,这些给我造成了一个很大的困惑,不知道哪位大神可以帮我解释一下,最后经过查找资料找到了解决办法,那就是定义一个boolean型的cancle变量,当cancle变量为true时在线程中return一下就好使了,

下面是一个小例子

private void init_main_thread()  
       {  
        main_thread = new Thread(new Runnable() {  
            /** 
             * @author zhangxiaomin 
             * 主要功能:游戏计时线程,设定开启矿脉的事件,增加player矿产数量,线程结束后实现页面跳转 
             */  
            public void run() {  
                System.out.println(time);  
                while (time > 0) {  
                    // System.out.println(time);  
                    try {  
                        this.sleep(1000);  
                        mHandler.post(new Runnable() {  
                            public void run() {  
                                handlerRun();  
                            }  
                        });  
                        time--;  
                        System.out.println(time+"");  
                        if (time <= 0) {  
                            setPlayerScore();  
                            Intent intent = new Intent();  
                            intent.setClass(MapActivity.this,  
                                    RateActivity.class);  
                            finish();  
                            startActivity(intent);  
                        }  
                        if(cancle)  
                        {  
                            return;  
                        }  
                    } catch (InterruptedException e) {  
                        // TODO Auto-generated catch block  
                        e.printStackTrace();  
                    }  
                }  
      
            }  
      
            private void sleep(int i) throws InterruptedException {  
                Thread.sleep(i);  
            }  
        });  
       }

相关推荐