2017-06-27 4 views
-7

スレッドが必要な理由彼らの役割は何ですか?いくつかの簡単な言葉を使ってください、私はAndroidでそれほど進んでいません。スレッドが有用な理由とその役割は何ですか?

私は2つの異なるコードで同じことを達成しました。そのうちの1つはスレッドを使用し、もう1つはタイマーを使用します。メモリ使用の観点から最も効率的なものはどれですか?長期的には学ぶ方が良いですか?

コード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

この質問は、一般的なことかもしれないが、あなたはスレッドが何であるかを理解していない場合、あなたは基本的なオペレーティングシステムの概念を学ぶ必要がAndroid-学ぶ必要はありません – 10101010

+0

をdownvotedべきではありません。これは90年代以降の80年代のプログラミングでは、かなり基本的な概念です。 –

+0

こちらのスレッドについて読む:https://developer.android.com/guide/components/processes-and-threads.html ここのタイマーについては、 https://developer.android.com/reference/java/util/ Timer.html あなたのコンセプトを明確にすることを願っています。 –

答えて

0

スレッドを使用すると、同時に複数のプロセスを実行することができます。デフォルトでは、すべてのアクションはメインスレッド上で実行されます。これは、問題が発生します。なぜなら、長いプロセスが実行されている間、グラフィックスは一般的に描画する必要があるからですたとえば、ローディング画面は、基礎となるプロセスが計算を実行している間はアクティブでなければなりません。

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

+0

そして、もし私がそれを正しく理解すれば、すべてを一つの物に置くと、まず計算が行われてから、読み込み画面が現れてから、... –

+0

正しい。あなたが望むものではありません。 –

関連する問題