Activity Running In Background Android On Radio Player

Hai sobat, pada artikel sebelumnya yang berjudul Radio Player Android Tutorial, telah kita coba menciptakan aplikasi pemutar radio streaming di android. Dan sekarang aku akan mengatakan kepada teman untuk menciptakan aplikasi pemutar radio yang kemarin di buat semoga sanggup berjalan di background.


Pernahkah teman bermain game di android, kemudian teman menerima telepon atau sesuatu yang menciptakan teman harus menjeda atau menutup game yang sedang teman mainkan? Dan ketika sesuatu itu selesai, kemudian teman membuka game yang tadi dimainkan tetapi teman masih sanggup melanjutkanya. Kenapa game tersebut tidak dimulai dari awal atau berhenti? jikalau tahu silahkan komentar di bawah ya hehe

Penyebab game tersebut tidak berhenti dan teman masih sanggup melanjutkan game yang teman mainkan yakni alasannya game tersebut sanggup berjalan di background. Kaprikornus ketika teman menutup aplikasi tersebut dengan menekan tombol home atau back atau keluar alasannya ada aplikasi yang menggantikanya, maka acara (activity) yang sedang berlangsung tadi disimpan di dalam memori semoga masih sanggup diakses pada lain waktu. Untuk penjelasanya kita bisa

Baca juga "Membuat Aplikasi Sederhana Menggunakan Material Design"

Dan kali ini kita akan menciptakan fungsi running in background pada aplikasi yang kemarin kita buat yaitu aplikasi radio streming. Kaprikornus jikalau kita tambahkan fungsi ini ke dalam aplikasi radio streaming ini, maka aplikasi ini sanggup berjalan di background dan kita sanggup mendengarkan radio sambil melaksanakan acara lain. Untuk menciptakan aplikasi berjalan di background (running in background), teman sanggup mengikuti langkah-langkah di bawah ini:

Buka project radio player yang kemarin di buat pada artikel tentang Radio Player Android Tutorial, kemudian buka file MainActivity.java dan tambahkan aba-aba di bawah ini :

     @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         switch (keyCode) {             case KeyEvent.KEYCODE_BACK:                 if(isTaskRoot() && player.isPlaying()) {                     Intent homeIntent = new Intent(Intent.ACTION_MAIN);                     homeIntent.addCategory(Intent.CATEGORY_HOME);                     startActivity(homeIntent);                     return true;                 } else {                     super.onKeyDown(keyCode, event);                     return true;                 }                  default:super.onKeyDown(keyCode, event);                     return true;         } 


Jika class MainActvity.java telah ditambahkan aba-aba di atas, maka aba-aba pada class MainActivity.java secara keseluruhan akan menyerupai berikut ini

 package com.blogsetyaaji.radio;  import android.content.Intent; import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView;  import java.io.IOException;  public class MainActivity extends AppCompatActivity implements View.OnClickListener{      private String url_radio = "http://162.243.130.87";     private ProgressBar playSeekBar;     private TextView tvRadioUrl;     private Button buttonPlay;     private Button buttonStop;     private MediaPlayer player;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         initializeUIElements();         initializeMediaPlayer();     }      private void initializeMediaPlayer() {         player = new MediaPlayer();         try {             player.setDataSource(url_radio);         } catch (IllegalArgumentException e) {             e.printStackTrace();         } catch (IllegalStateException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }          player.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {             @Override             public void onBufferingUpdate(MediaPlayer mp, int percent) {                 playSeekBar.setIndeterminate(false);                 playSeekBar.setSecondaryProgress(100);                 Log.i("Buffering", "" + percent);             }         });      }      private void initializeUIElements() {         playSeekBar = (ProgressBar) findViewById(R.id.progresBar);         playSeekBar.setMax(100);         playSeekBar.setVisibility(View.INVISIBLE);         playSeekBar.setIndeterminate(true);          buttonPlay = (Button) findViewById(R.id.btnPlay);         buttonPlay.setOnClickListener(this);          buttonStop = (Button) findViewById(R.id.btnStop);         buttonStop.setEnabled(false);         buttonStop.setOnClickListener(this);          tvRadioUrl = (TextView) findViewById(R.id.textUrlRadio);         tvRadioUrl.setText("Radio url : " + url_radio);      }      @Override     public void onClick(View v) {         if (v == buttonPlay) {             startPlaying();         } else if (v == buttonStop) {             stopPlaying();         }      }      private void stopPlaying() {         if (player == null) return;         try{             if (player.isPlaying()) {                 player.stop();                 player.release();                 initializeMediaPlayer();             }         } catch (IllegalStateException e) {          }         buttonPlay.setEnabled(true);         buttonStop.setEnabled(false);         playSeekBar.setIndeterminate(true);         playSeekBar.setVisibility(View.INVISIBLE);     }      private void startPlaying() {         buttonStop.setEnabled(true);         buttonPlay.setEnabled(false);         playSeekBar.setVisibility(View.VISIBLE);         player.prepareAsync();         player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {             @Override             public void onPrepared(MediaPlayer mp) {                 player.start();             }         });     }      @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         switch (keyCode) {             case KeyEvent.KEYCODE_BACK:                 if(isTaskRoot() && player.isPlaying()) {                     Intent homeIntent = new Intent(Intent.ACTION_MAIN);                     homeIntent.addCategory(Intent.CATEGORY_HOME);                     startActivity(homeIntent);                     return true;                 } else {                     super.onKeyDown(keyCode, event);                     return true;                 }                  default:super.onKeyDown(keyCode, event);                     return true;         }     } } 


Selanjutnya silahkan teman jalankan aplikasinya kemudian sehabis radio terputar tekan tombol kembali, bila radio masih berputar ketika kita menutup aplikasi, maka fungsi running in background di atas telah berhasil.

Sekian artikel tentang Activity Running in Background Android on Radio Player semoga bermanfaat, antikan artikel berikutnya.

0 Komentar untuk "Activity Running In Background Android On Radio Player"

Back To Top