Android使用AlarmManager設(shè)置鬧鐘功能
本文實(shí)例為大家分享了Android使用AlarmManager設(shè)置鬧鐘的具體代碼,供大家參考,具體內(nèi)容如下
一、首先創(chuàng)建設(shè)置鬧鐘的布局頁(yè)面activity_alarm_manager.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? xmlns:app="http://schemas.android.com/apk/res-auto" ? ? xmlns:tools="http://schemas.android.com/tools" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? tools:context=".AlarmManagerActivity"> ? ? <TimePicker ? ? ? ? android:id="@+id/timePicker" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" /> ? ? <Button ? ? ? ? android:id="@+id/btn_alarm" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:layout_below="@id/timePicker" ? ? ? ? android:layout_centerHorizontal="true" ? ? ? ? android:text="設(shè)置鬧鐘" /> </RelativeLayout>
二、創(chuàng)建AlarmActivity用于設(shè)置其到達(dá)指定時(shí)間后,彈出的一個(gè)對(duì)話,這個(gè)要在清單文件中注冊(cè)
public class AlarmActivity extends AppCompatActivity { ? ? @Override ? ? protected void onCreate(@Nullable Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); ? ? ? ? alertDialog.setTitle("傳遞正能量") ? ? ? ? ? ? ? ? .setIcon(R.drawable.ic_baseline_report) ? ? ? ? ? ? ? ? .setMessage("要么出眾,要么出局") ? ? ? ? ? ? ? ? .setNegativeButton("確定", new DialogInterface.OnClickListener() { ? ? ? ? ? ? ? ? ? ? @Override ? ? ? ? ? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) { ? ? ? ? ? ? ? ? ? ? ? ? //確定 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? }).show(); ? ? } }
三、在activity_alarm_manager.xml對(duì)應(yīng)的Activity中設(shè)置鬧鐘
public class AlarmManagerActivity extends AppCompatActivity { ? ? private TimePicker timePicker; ? ? private Button btn_alarm; ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_alarm_manager); ? ? ? ? timePicker = findViewById(R.id.timePicker); ? ? ? ? btn_alarm = findViewById(R.id.btn_alarm); ? ? ? ? btn_alarm.setOnClickListener(new View.OnClickListener() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void onClick(View v) { ? ? ? ? ? ? ? ? //設(shè)置鬧鐘 ? ? ? ? ? ? ? ? Intent intent = new Intent(AlarmManagerActivity.this, AlarmActivity.class); ? ? ? ? ? ? ? ? //獲取顯示鬧鐘的PendingIntent ? ? ? ? ? ? ? ? //PendingIntent是對(duì)Intent的描述,主要用來(lái)處理即將發(fā)生的事情,這個(gè)Intent會(huì)由其他程序進(jìn)行調(diào)用,這里是由鬧鐘調(diào)用 ? ? ? ? ? ? ? ? PendingIntent pendingIntent = PendingIntent.getActivity(AlarmManagerActivity.this, 0, intent, 0); ? ? ? ? ? ? ? ? //獲取AlarmManager對(duì)象 ? ? ? ? ? ? ? ? AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); ? ? ? ? ? ? ? ? //獲取日歷對(duì)象 ? ? ? ? ? ? ? ? Calendar c = Calendar.getInstance(); ? ? ? ? ? ? ? ? //設(shè)置鬧鐘的小時(shí)數(shù) ? ? ? ? ? ? ? ? c.set(Calendar.HOUR_OF_DAY, timePicker.getHour()); ? ? ? ? ? ? ? ? //設(shè)置鬧鐘的分鐘數(shù) ? ? ? ? ? ? ? ? c.set(Calendar.MINUTE, timePicker.getMinute()); ? ? ? ? ? ? ? ? //設(shè)置鬧鐘的秒數(shù) ? ? ? ? ? ? ? ? c.set(Calendar.SECOND, 0); ? ? ? ? ? ? ? ? //第一個(gè)參數(shù):鬧鐘類型 ? ? ? ? ? ? ? ? //ELAPSED_REALTIME:在指定的延時(shí)后提醒(不喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //ELAPSED_REALTIME_WAKEUP:在指定的延時(shí)后提醒(喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //RTC:到達(dá)指定時(shí)間提醒(不喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //RTC_WAKEUP:到達(dá)指定時(shí)間提醒(喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //第二參數(shù):指定時(shí)間,獲取日歷對(duì)象對(duì)應(yīng)時(shí)間的毫秒數(shù) ? ? ? ? ? ? ? ? //第三個(gè)參數(shù):用于指定當(dāng)鬧鐘喚醒時(shí),所指定的頁(yè)面 ? ? ? ? ? ? ? ? alarm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent); ? ? ? ? ? ? ? ? Toast.makeText(AlarmManagerActivity.this, "鬧鐘設(shè)置成功!", Toast.LENGTH_SHORT).show(); ? ? ? ? ? ? } ? ? ? ? }); ? ? } }
效果如圖所示:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android直播系統(tǒng)平臺(tái)搭建之圖片實(shí)現(xiàn)陰影效果的方法小結(jié)
這篇文章主要介紹了Android直播系統(tǒng)平臺(tái)搭建, 圖片實(shí)現(xiàn)陰影效果的若干種方法,本文給大家?guī)?lái)三種方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08Android消息機(jī)制Handler用法總結(jié)
這篇文章介紹了Android消息機(jī)制Handler用法總結(jié),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11如何在Android中實(shí)現(xiàn)左右滑動(dòng)的指引效果
本篇文章是對(duì)在Android中實(shí)現(xiàn)左右滑動(dòng)指引效果的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Android編程實(shí)現(xiàn)監(jiān)控各個(gè)程序流量的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)監(jiān)控各個(gè)程序流量的方法,涉及Android針對(duì)應(yīng)用包的遍歷,權(quán)限控制及相關(guān)屬性操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12解決django 多個(gè)APP時(shí) static文件的問(wèn)題
這篇文章主要介紹了解決django 多個(gè)APP時(shí) static文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android 網(wǎng)絡(luò)請(qǐng)求框架解析之okhttp與okio
HTTP是現(xiàn)代應(yīng)用常用的一種交換數(shù)據(jù)和媒體的網(wǎng)絡(luò)方式,高效地使用HTTP能讓資源加載更快,節(jié)省帶寬,OkHttp是一個(gè)高效的HTTP客戶端,下面這篇文章主要給大家介紹了關(guān)于OkHttp如何用于安卓網(wǎng)絡(luò)請(qǐng)求,需要的朋友可以參考下2021-10-10Android 第三方庫(kù)lottie、mmkv的使用詳解
lottie是Airbnb開(kāi)源的一個(gè)面向 iOS、Android、React Native 的動(dòng)畫庫(kù),能實(shí)現(xiàn)精美、復(fù)雜的動(dòng)畫效果,本文通過(guò)實(shí)例代碼給大家介紹Android 第三方庫(kù)lottie、mmkv的使用,感興趣的的朋友一起看看吧2021-04-04Android 反射注解與動(dòng)態(tài)代理綜合使用詳解
本篇文章主要介紹了Android 反射注解與動(dòng)態(tài)代理綜合使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Android?webView加載數(shù)據(jù)時(shí)內(nèi)存溢出問(wèn)題及解決
這篇文章主要介紹了Android?webView加載數(shù)據(jù)時(shí)內(nèi)存溢出問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12