public class AlarmTipActivity extendsAppCompatActivity {privateMediaPlayer mMediaPlayer;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm_tip);
AlertDialog.Builder builder= new AlertDialog.Builder(this);final AlertDialog dialog =builder.create();
builder.setMessage("Alarm Clock!");
builder.setPositiveButton("确定", newDialogInterface.OnClickListener() {
@Overridepublic void onClick(DialogInterface dialogInterface, inti) {
dialog.cancel();
Intent intent=getIntent();//如果不是从前台过来的闹钟就启动MainActivity
if (!intent.getBooleanExtra("fromhead", false)) {
Intent intent1= newIntent();
intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent1.setClass(AlarmTipActivity.this, MainActivity.class);
startActivity(intent1);
}
finish();
}
});//点击空白处不可取消alert
builder.setCancelable(false);
builder.show();
wakeUpScreen();
}
@Overrideprotected voidonStart() {super.onStart();//确保唤醒后也能播放音乐
playMusic();
}private voidplayMusic() {
mMediaPlayer= MediaPlayer.create(this, LHSharePreferenceTool.getAlarmRing(this));
mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mMediaPlayer.setScreenOnWhilePlaying(true);
mMediaPlayer.start();
}/*唤醒屏幕*/
private voidwakeUpScreen() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
}
@Overrideprotected voidonStop() {super.onStop();if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer= null;
}
}
}