当我旋转我的手机时,我的程序崩溃
问题描述:
当程序启动文本闪烁并播放歌曲时,我正在构建一个简单的应用程序。当我旋转手机时,它应该改变风景并重新开始歌曲。我能够完成第一部分,但当我改变风景时它会崩溃。它工作,如果我删除onPause方法,但当我这样做音乐不断在后台播放,它也从头开始。有两首歌同时播放。当我旋转我的手机时,我的程序崩溃
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ourSong = MediaPlayer.create(this,R.raw.fixyou);
ourSong.start();
blinkText();
}
@Override
protected void onPause(){
super.onPause();
ourSong.release();
finish();
}
private void blinkText() {
// TODO Auto-generated method stub
final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
int timeToBlink = 500; //in ms
try{
Thread.sleep(timeToBlink);
}catch (Exception e) {
}
handler.post(new Runnable() {
@Override
public void run() {
TextView txt = (TextView) findViewById(R.id.tv);
if(txt.getVisibility() == View.VISIBLE){
txt.setVisibility(View.INVISIBLE);
}else{
txt.setVisibility(View.VISIBLE);
}
blinkText();
}
});
}}).start();
}
}
答
android:configChanges="orientation|screenSize"
使用这条线在您的清单文件中您想要的活动代码 这样
<activity
android:name=".PActivity"
android:label="@string/title_activity_r"
android:noHistory="true"
android:configChanges="orientation|screenSize">
</activity>
+0
我想看看是否有没有办法做到这一点,而不触及清单文件 – user2905259
+0
作为@surya说请看到这个答案它将解决你的问题http://stackoverflow.com/questions/17917994/how-to-play-audio-continuously-while-orientation -changes功能于安卓 –
你需要处理onconfigurationchanged – surya
@surya我在哪里可以做到这一点,就是新动作听众,我需要创建。即时通讯新手在此真的感谢您的帮助 – user2905259
检查此问题http://stackoverflow.com/questions/17917994/how-to-play-audio-continuously-while-orientation-changes-in-android – surya