我的Android应用程序出现问题,只要屏幕旋转,它就会在每次启动时返回状态。该应用程序有几个ImageButton
s,每次点击都会改变它们的图像,我在循环中播放背景音乐。无论何时旋转屏幕,ImageButton
都会返回默认图像,即使用户触摸它们已经更改了它们,并且音乐循环的另一个实例开始播放。我怎么能阻止这种情况发生?我不知道如何处理ImageButton
。至于音乐循环,我尝试使用onStart()
,但无论如何它仍然会发生,即使我使用boolean
来检查它是否已经完成了一次任务。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_activity);
}
@Override
protected void onStart() {
if(firstRun)
{
super.onStart();
mediaPlayer = MediaPlayer.create(this, R.raw.music);
mediaPlayer.setLooping(true);
mediaPlayer.start();
firstRun = false;
}
}
答案 0 :(得分:1)
这是android活动的经典行为。实际上你的应用程序没有重启,但活动正在重启。您可以使用以下提到的解决方案:
How to avoid restarting activity when orientation changes on Android
我还建议您扎实掌握Activity LifeCyle,以确保您因Android活动/碎片的古怪行为而减少麻烦。
此外,由于您希望在后台播放音乐,请尝试在任务栏中使用具有持久通知的服务,以确保您的应用不会被Android突然关闭。
答案 1 :(得分:0)
将此行添加到Manifest.xml
文件
android:configChanges="keyboardHidden|screenSize|orientation"
像这样:
<activity android:name=".YourActivity"
android:configChanges="keyboardHidden|screenSize|orientation" />