为什么线程有用,它们的作用是什么?

时间:2017-06-27 21:22:23

标签: android

为什么需要线程?他们的角色是什么?请使用一些简单的语言,我在Android中并不是那么先进。

我用两个不同的代码完成了同样的事情。其中一个使用线程,而另一个使用计时器。从内存使用角度来看哪个是最有效的?从长远来看哪个更好学习?

代码1)

MediaPlayer ourSong;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    ourSong = MediaPlayer.create(this, R.raw.hungat);
    ourSong.start();
    Thread timer = new Thread() {
        @Override
        public void run() {
            try {
                sleep(5000);

            } catch (InterruptedException e){
                e.printStackTrace();
            }finally {
                Intent i1 = new Intent("android.intent.action.MAINACTIVITY");
                startActivity(i1);
            }
        }
    };
    timer.start();
}
@Override
protected void onPause() {
    super.onPause();
    finish();
}

代码2)

public class splashactivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    final MediaPlayer ourSong = MediaPlayer.create(this, R.raw.hungat);

    CountDownTimer action = new CountDownTimer(5000, 1000) {
        @Override
        public void onTick(long l) {
            ourSong.start();
        }

        @Override
        public void onFinish() {
            ourSong.release();
            Intent i1 = new Intent("android.intent.action.MAINACTIVITY");
            startActivity(i1);
            finish();
        }
    }.start();
}

1 个答案:

答案 0 :(得分:0)

线程允许您同时运行多个进程。默认情况下,所有操作都在主线程上运行。这会导致问题,因为在进行长时间处理时通常需要绘制图形。例如,在基础流程进行计算时,加载屏幕应处于活动状态。

https://developer.android.com/guide/components/processes-and-threads.html