该fragment作为Activity的入口所start的Activity在上一节已经讲过,这里讲在onClick的switch里面剩下的case
changeMode()
歌曲的播放模式在上一节已经讲过
getActivity().finish()
退出程序,退出该App,但退出程序不是这样的,这只是退出该Activity
退出有许多种方法:
System.exit();就像我们以前用C语言写的程序一样这样就轻易的退出了。
通过该package杀掉该进程。package是标识该应用的,不会有同样的packagename,同样也作为进程的名称,当然能获取进程号杀死也行。
仍旧是杀死该进程,只不过需要调用系统的kill命令执行。
mMainActivity.showSleepDialog();
这软件架构好难理解,把方法写到主Activity里面,在该系列开始的时候对这做过简要介绍,这里详细写下。
在showSleepDialog方法里面构造了一个dialog,并给dialog的2个button都设置了监听器,调用了setSleepClock方法
setSleepClock方法里面通过pendingintent包装了一个含有Action的intent,然后通过AlarmManager设置定时广播发送。
在mAlarmReceiver里面接收了该Action,然后finish掉该activity。
遗憾的是在取消按钮的时候没有取消该定时,于是就造成了无法取消定时的问题(除了设置很长时间),该类中写了这个方法cancleSleepClock(),只需在取消按钮的时候检查是否设置了定时,并取消定时。