国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

安卓之鬧鐘

2019-11-07 23:53:49
字體:
來源:轉載
供稿:網友

做一個自定義的鬧鐘,首先要得到鬧鐘管理者(AlarmManager),然后得到系統當前時間。 /** * 1.彈出時間對話框 * 2.確定好選擇的時間 * 3.設置好鬧鐘 * 4.時間一到,執行響應(發送廣播,接收廣播。跳轉頁面) * PendingIntent 延遲跳轉 AlarmManager鬧鐘管理者 * Intent的組成部分:ComponementName extra Action Data Categlay(分組) Flag */ 差不多就這么幾個步驟。 鬧鐘可以設置一次以及多次。多次就是有一個周期(24小時響一次)。其不同之處在于: 一次:alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent); 多次:alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),5000, pendingIntent); 代碼如下:

public class MainActivity extends AppCompatActivity { PRivate AlarmManager alarmManager; private PendingIntent pendingIntent; private Button main_btn_alarm; private Button main_btn_alarmcycle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取鬧鐘管理者 alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); main_btn_alarm = (Button) findViewById(R.id.main_btn_alarm); main_btn_alarmcycle= (Button) findViewById(R.id.main_btn_alarmcycle); } //設置鬧鐘(響一次) public void setAlarm(View view){ //獲取當前系統時間 Calendar c=Calendar.getInstance(); int hour=c.get(Calendar.HOUR_OF_DAY);//小時 int minute=c.get(Calendar.MINUTE);//分鐘 /** * 1.彈出時間對話框 * 2.確定好選擇的時間 * 3.設置好鬧鐘 * 4.時間一到,執行響應(發送廣播,接收廣播。跳轉頁面) * PendingIntent 延遲跳轉 AlarmManager鬧鐘管理者 * Intent的組成部分:ComponementName extra Action Data Categlay(分組) Flag */ TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { //設置鬧鐘時間,確定時間。 Calendar calendar=Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,i); calendar.set(Calendar.MINUTE,i1); //時間一到,執行響應 Intent intent=new Intent(); intent.setAction("com.example.yang_alarm_notification.RING"); PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0); alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent); main_btn_alarm.setText("設置鬧鐘時間:"+i+"時"+i1+"分"); } },hour,minute,true); main_btn_alarm.setText("設置鬧鐘(響一次)"); timePickerDialog.show(); } //設置鬧鐘(重復) public void setAlarmCycle(View view){ //獲取當前系統時間 Calendar c=Calendar.getInstance(); int hour=c.get(Calendar.HOUR_OF_DAY);//小時 int minute=c.get(Calendar.MINUTE);//分鐘 /** * 1.彈出時間對話框 * 2.確定好選擇的時間 * 3.設置好鬧鐘 * 4.時間一到,執行響應(發送廣播,接收廣播。跳轉頁面) * PendingIntent 延遲跳轉 AlarmManager鬧鐘管理者 * Intent的組成部分:ComponementName extra Action Data Categlay(分組) Flag */ TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { //設置鬧鐘時間,確定時間。 Calendar calendar=Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,i); calendar.set(Calendar.MINUTE,i1); //時間一到,執行響應 Intent intent=new Intent(); intent.setAction("com.example.yang_alarm_notification.RING"); pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),5000, pendingIntent); main_btn_alarmcycle.setText("設置鬧鐘時間:"+i+"時"+i1+"分"); } },hour,minute,true); timePickerDialog.show(); } //取消重復鬧鐘 public void CancelAlarmCycle(View view){ main_btn_alarmcycle.setText("設置鬧鐘(重復)"); alarmManager.cancel(pendingIntent); }}

我這里沒有直接跳轉,而是通過廣播來跳轉。利用Intent的Action。設置廣播名字,詳情請參考:http://blog.csdn.net/QQ_35731570/article/details/54910216


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 来凤县| 乌恰县| 科技| 陵水| 方城县| 舒兰市| 长沙市| 楚雄市| 玉门市| 巴南区| 旬邑县| 鞍山市| 华安县| 金华市| 镇原县| 满洲里市| 清丰县| 南充市| 瑞昌市| 濉溪县| 普格县| 五台县| 应城市| 调兵山市| 甘南县| 萍乡市| 柳河县| 绍兴市| 浙江省| 宾阳县| 临漳县| 杭锦后旗| 工布江达县| 四子王旗| 吉首市| 富阳市| 宁德市| 和静县| 闸北区| 钟祥市| 德令哈市|