你的位置:首页 > 软件开发 > 操作系统 > 关于Activity销毁,而绘制UI的子线程未销毁出现的问题

关于Activity销毁,而绘制UI的子线程未销毁出现的问题

发布时间:2015-11-12 23:00:08
最近做一个项目,有一个功能模块,需要播放音频,画一个简单的界面一个例子:我们都知道播放音频要用到MediaPlayer类,我这里,不需要开启Service,就在本Activity播放音频,当Activity销毁的时候,音频便结束但是有一个重点,需要即时的变化当前播放的时间我的思路 ...

关于Activity销毁,而绘制UI的子线程未销毁出现的问题

最近做一个项目,有一个功能模块,需要播放音频,画一个简单的界面

一个例子:

关于Activity销毁,而绘制UI的子线程未销毁出现的问题

我们都知道播放音频要用到MediaPlayer类,我这里,不需要开启Service,就在本Activity播放音频,当Activity销毁的时候,音频便结束

但是有一个重点,需要即时的变化当前播放的时间

我的思路是,开启一个线程,计算当前音频的剩余播放时间,如果>0 则用Handler循环发送一个消息来更改时间UI

Thread tPlay ;tPlay = new Thread(new Runnable() {      @Override      public void run() {        int time = (mPlay.getDuration()-mPlay.getCurrentPosition())/1000; // 获得当前的音频的剩余时间,总时长-当前播放时长        while(time>0&&mPlay!=null) {                    // 如果剩余时间>0 并且MediaPlayer对象存在,就需要没0.2秒更新一下时间UI          try {            Thread.sleep(200);            time = (mPlay.getDuration()-mPlay.getCurrentPosition())/1000; //获得当前时间            final int finalTime = time;            handler.post(new Runnable() {              @Override              public void run() {                topic_play_time.setText(finalTime /60+"'"+ finalTime %60); //更改UI              }            });          } catch (InterruptedException e) {            e.printStackTrace();          }        }      }    });

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:关于Activity销毁,而绘制UI的子线程未销毁出现的问题

关键词:线程

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。