Android 添加音乐到 MainActivity 应用退出后崩溃?
Android Adding music to MainActivity app crashes after exiting?
我正在制作一个应用程序,其中有一个初始屏幕和一个有两个按钮的菜单页面。我在菜单页面添加了背景音乐。当我退出应用程序时,音乐不会停止。我尝试了 onPause() 和 onStop() 甚至 onDestroy() 方法,但是在我退出应用程序时添加它们后,应用程序崩溃显示 "Unfortunately appname has stopped working"
这是我的代码,请帮助我,因为我是新手。
包裹 com.example.appname;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
MediaPlayer backgroundsong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
MediaPlayer backgroundsong= MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
backgroundsong.release();
}
}
实际上你的 backgroundson==null
在 onDestroy()
,所以你得到了 NPE
所以 initialized
backgroundson
喜欢
MediaPlayer backgroundsong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.......
........
backgroundsong= MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
}
嘿,你在函数中创建了一个局部变量,所以你的全局变量是 null...
在某个函数中定义同名局部变量时,该函数中变量名的用法指向局部变量,而不是全局变量。
MediaPlayer backgroundsong=MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
改为
backgroundsong=MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
我正在制作一个应用程序,其中有一个初始屏幕和一个有两个按钮的菜单页面。我在菜单页面添加了背景音乐。当我退出应用程序时,音乐不会停止。我尝试了 onPause() 和 onStop() 甚至 onDestroy() 方法,但是在我退出应用程序时添加它们后,应用程序崩溃显示 "Unfortunately appname has stopped working" 这是我的代码,请帮助我,因为我是新手。 包裹 com.example.appname;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
MediaPlayer backgroundsong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
MediaPlayer backgroundsong= MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
backgroundsong.release();
}
}
实际上你的 backgroundson==null
在 onDestroy()
,所以你得到了 NPE
所以 initialized
backgroundson
喜欢
MediaPlayer backgroundsong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.......
........
backgroundsong= MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
}
嘿,你在函数中创建了一个局部变量,所以你的全局变量是 null...
在某个函数中定义同名局部变量时,该函数中变量名的用法指向局部变量,而不是全局变量。
MediaPlayer backgroundsong=MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();
改为
backgroundsong=MediaPlayer.create(MainActivity.this, R.raw.penguinshort);
backgroundsong.start();