为什么需要线程?他们的角色是什么?请使用一些简单的语言,我在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();
}
答案 0 :(得分:0)
线程允许您同时运行多个进程。默认情况下,所有操作都在主线程上运行。这会导致问题,因为在进行长时间处理时通常需要绘制图形。例如,在基础流程进行计算时,加载屏幕应处于活动状态。
https://developer.android.com/guide/components/processes-and-threads.html