开发者社区> 问答> 正文

安卓把new thread写在onCreate()里面不会运行?

今天写了一个线程在onCreate里面,结果它不运行。我犯错了??
这个子线程在哪里开start(),有关系吗?我以为无论在哪里开了,它就是特立独行的了?

public void onCreate() {
        super.onCreate();
        player = new MediaPlayer();
        player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                mListener.onNextPlay(true);
            }
        });
        new Thread() {
           @Override
            public void run() {
                final int millis = 100;
                try {
                    sleep(millis);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if (player.isPlaying() && player != null) {
                    mListener.onPlaying(player.getCurrentPosition(), player.getDuration());
                    Log.i("ddd", Integer.toString(player.getCurrentPosition()));
                }
            }
        }.start();
    }

Log.i("ddd", Integer.toString(player.getCurrentPosition()));
这句没有信息弹出,如果歌曲播放了,它会不断输出播放进度的数字才是.经过添加log,得知这个线程是一开始就运行的,但是sleep一次后,就好像没有醒过来一样....没信息输出

展开
收起
蛮大人123 2016-03-11 11:38:29 2876 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    onCreate只在创建activity的时候运行一次,而且,这个thread在运行完run当中最后一行的时候就已经结束了。

    2019-07-17 18:58:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载