Android的程序中,线程停止问题·

    技术2022-06-11  73

    在Android的程序中,UI线程是主线程理论上来讲,Activity调用了finish方法后,主线程就终止了那么其上的子线程也应该是停止

    但是通过测试,发现并不是这样finish退出程序后,子线程还在后台跑必须用DDMS停止该线程才行

    那么如何在程序退出时,停止所有开启的子线程呢?我想到了两个方案:

    一,在退出时,改变线程内循环的标识符while(isRun){…}将isRun置为false,则打破了循环,线程终止

    二,不采用while(isRun){…}这样的循环方式而利用Android提供的Handler机制来完成

    //将一个线程立即加入线程队列,并执行它的[color=red]run[/color]方法 handler.post(test); Runnable test = new Runnable(){ public void run(){ //以上代码略 //延迟1000毫秒,执行这个线程的[color=red]run[/color]方法 handler.postDelayed(test,1000); } } //退出时 //即从线程队列中移除该线程,不再被执行 handler.removeCallbacks(test);

    如红字标注,确实是调用的run方法,所以其实并未真正的启动一个子线程

    以上是我想到的两个方案,不知对不对


    最新回复(0)