【发布时间】:2017-01-12 16:28:18
【问题描述】:
我有一个 Mainactivity 扩展 fragmentActivity(不确定是否相关),它可以正常播放背景音乐。我希望音乐在您离开活动时停止。我最小化了下面的代码。我在 Activity 的 onPause() 生命周期上遇到空点异常。
public class MainActivitytest extends FragmentActivity implements
ActionBar.TabListener{
private String[] tabs = {"Colors and Shapes", "Letters and Numbers", "CVC and Sight Words", "Adjectives", "Simple Sentences", "Reading Comprehension"};
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
private int myShuffledSize;
private Context context;
public static final String PREFS_NAME = "MyPrefsFile";
public MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Intent intent = new Intent(this, MusicService.class);
startService(intent);
new SetupViews().invoke(); //setup fragment views
}
public void onResume() {
super.onResume();
MediaPlayer player = MediaPlayer.create(MainActivitytest.this, R.raw.bgmusic3);
player.setLooping(true);
player.setVolume(100, 100);
player.start();
}
public void onPause(){
super.onPause();
//player.stop(); //causes null pointer exception
}
【问题讨论】:
-
就像您关闭的question from yesterday 一样,问题在于不了解Android Activity 生命周期。您是否阅读过活动的官方文档(在封闭式问题中建议)?您不应该仅仅期望只是从互联网上复制和粘贴示例而不了解其背后的概念。请花一些时间了解 Activity 生命周期并发布 minimal reproducible example,否则问题偏离主题,往往会被否决
-
@DavidRawson 我已阅读并观看了您分享的链接。根据我所学到的,我认为问题在于片段与活动类的生命周期相关联。现在,如果我可以问你如何进一步研究 b/c,我试图让播放器在 onPause(活动和片段)处停止,但我仍然不断收到空异常错误。我应该在哪个生命周期(活动或片段或两者)下命令让玩家停止?我并不是要跑题,也许我只是不知道如何提出正确的问题。
-
您从视频中学到了很多东西。现在也许编辑您的问题以包含您提到的信息。所以,玩家在[生命周期这里停止,例如。 onStart()] 或者,我在 [这里的生命周期] 得到 [nullpointerexception]。如果你这样做,它可以让人们更容易快速诊断问题,而无需通读所有代码
标签: android android-fragmentactivity background-music background-media-player