Android自定義鬧鐘功能
Android鬧鐘alarmManager+PendingIntent的使用方法,供大家參考,具體內(nèi)容如下
這次給大家分享兩種鬧鐘:
第一種是當?shù)竭_鬧鐘時間后執(zhí)行一次相應的操作
alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);
第二種是當?shù)竭_鬧鐘時間后每隔一段時間執(zhí)行操作
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);
下面看效果圖:

設置兩種鬧鐘

選擇鬧鐘時間

鬧鐘一到打開一個界面
下面看代碼:
public class Alarm2Activity extends AppCompatActivity {
private AlarmManager alarmManager;
private PendingIntent pendingIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm2);
//實例化鬧鐘個管理器
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
}
//設置鬧鐘(只響一次)
public void startAlarmOne(View view){
//獲取當前系統(tǒng)的時間
Calendar calendar=Calendar.getInstance();
int hour=calendar.get(Calendar.HOUR_OF_DAY);
int minute=calendar.get(Calendar.MINUTE);
//彈出時間對話框(選擇時間)
TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
//獲取當前系統(tǒng)的時間
Calendar c=Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY,i);
c.set(Calendar.MINUTE,i1);
//打開一個Activity
Intent intent=new Intent();
intent.setAction("com.example.myandroid_27.ALARM");
PendingIntent pendingIntent= PendingIntent.getBroadcast(Alarm2Activity.this,0x101,intent,0);
//設置鬧鐘
alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);
}
},hour,minute,true);
timePickerDialog.show();
}
//設置鬧鐘(在多長時間后鬧鐘響然后繼續(xù)計時)
public void startAlarmTwo(View view){
//獲取當前系統(tǒng)的時間
Calendar calendar=Calendar.getInstance();
int h=calendar.get(Calendar.HOUR_OF_DAY);
int m=calendar.get(Calendar.MINUTE);
//彈出時間對話框(選擇時間)
TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
//獲取選擇的鬧鐘時間
Calendar c=Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY,i);
c.set(Calendar.MINUTE,i1);
//打開一個Activity
Intent intent=new Intent();
intent.setAction("com.example.myandroid_27.ALARM");
pendingIntent = PendingIntent.getBroadcast(Alarm2Activity.this,0x102,intent,0);
//鬧鐘什么時候繼續(xù)執(zhí)行
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);
}
},h,m,true);
timePickerDialog.show();
}
//關閉周期鬧鐘
public void startAlarmThree(View view){
alarmManager.cancel(pendingIntent);
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android基準配置文件Baseline?Profile方案提升啟動速度
這篇文章主要為大家介紹了Android基準配置文件Baseline?Profile方案提升啟動速度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
Android webveiw 出現(xiàn)棧錯誤解決辦法
這篇文章主要介紹了Android webveiw 出現(xiàn)棧錯誤解決辦法的相關資料,出現(xiàn)java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes,這里提供解決辦法,需要的朋友可以參考下2017-08-08
Android 選擇相冊照片并返回功能的實現(xiàn)代碼
這篇文章主要介紹了Android 從相冊中選擇照片并返回功能,需要的朋友可以參考下2018-03-03
Android通過HTTP協(xié)議實現(xiàn)上傳文件數(shù)據(jù)
這篇文章主要為大家詳細介紹了Android通過HTTP協(xié)議實現(xiàn)上傳文件數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Flutter使用AnimatedBuilder實現(xiàn)動效復用
Animation和AnimationWidget都是將組件和動畫一起完成的。有些時候,我們只是想動效復用,而不關心組件構建,這個時候就可以使用 AnimatedBuilder了。本文詳細講解了AnimatedBuilder的使用,需要的可以參考一下2022-04-04
Android開發(fā)OkHttp執(zhí)行流程源碼分析
這篇文章主要為大家介紹了Android開發(fā)OkHttp執(zhí)行流程源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09

