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?