在我的应用中,我真的很难用背景音乐。我只是想在所有活动中播放音乐 - 当我按下主页按钮时我想停止播放音乐。我想在所有活动中“停止或播放”音乐按钮,但无法使其正常工作。
所以我决定做出尴尬的选择 - 只在1个活动中播放
的onCreate
backgroundmusic = MediaPlayer.create(StoryActivity.this, R.raw.creepy_music);
backgroundmusic.start();
的onPause
@Override
protected void onPause() {
super.onPause();
backgroundmusic.release();
finish();
}
请帮助我轻松完成活动生命周期?因此,当用户按下主页按钮时 - 音乐将停止。当他回到应用程序时 - 音乐将被恢复,此活动也(这不是MainActivity)
谢谢你们,伙计们
答案 0 :(得分:0)
以下是不同的LifeCycle状态。现在回答你的问题,
@Override
protected void onStop() {
super.onStop();
backgroundmusic.pause();
length = backgroundmusic.getCurrentPosition();
}
@Override
protected void onResume() {
super.onResume();
backgroundmusic.seekTo(length);
backgroundmusic.start();
}
在public class MainActivity extends AppCompatActivity
中,AppCompatActivity是Activity功能的主要来源,因此在super.onResume();
和super.onStop();
等上述方法中,super指的是AppCompatActivity class
< / p>
答案 1 :(得分:0)
假设您可以在应用程序中获得音乐服务,您可能正在寻找:
public class MyApp extends Application{
MusicService musicService;
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
if(musicService==null) return;
if(!musicService.isPlaying()){
musicService.play();
}
}
@Override
public void onActivityPaused(Activity activity) {
if(musicService==null) return;
if(musicService.isPlaying()){
musicService.pause();
}
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}
}
希望这有帮助