public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button play = (Button)findViewById(R.id.playButton);
MediaPlayer mediaN = MediaPlayer.create(this, R.raw.master6);
play.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
mediaN.start();
}
});
}
}
In the above code, I have intialised a new MediaPlayer
object within the onCreate
method. When i want to use the MediaPlayer
object mediaN
to call start()
method, it asks me to declare the object as final. However, I don't get any errors if I initialise MediaPlayer
object as instance variable of the class MainActivity
. Why am I asked to make the MediaPlayer
object as final
when it is declared as a local variable to onCreate
method?