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ù):鬧鐘類(lèi)型
? ? ? ? ? ? ? ? //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中使用開(kāi)源框架eventbus3.0實(shí)現(xiàn)fragment之間的通信交互
本文主要介紹了Android中使用開(kāi)源框架eventbus3.0實(shí)現(xiàn)fragment之間的通信交互的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
android利用service完成計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了android利用service完成計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Android開(kāi)發(fā)基礎(chǔ)使用ProgressBar加載進(jìn)度條示例
這篇文章主要介紹了安卓開(kāi)發(fā)基礎(chǔ)使用ProgressBar加載進(jìn)度條示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android 自定義AlertDialog對(duì)話框樣式
實(shí)際的項(xiàng)目開(kāi)發(fā)當(dāng)中,經(jīng)常需要根據(jù)實(shí)際的需求來(lái)自定義AlertDialog。最近在開(kāi)發(fā)一個(gè)WIFI連接的功能,點(diǎn)擊WIFI需要彈出自定義密碼輸入框,具體代碼大家參考下本文2017-09-09
Android開(kāi)發(fā)中關(guān)于獲取當(dāng)前Activity的一些思考
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)過(guò)程中,關(guān)于獲取當(dāng)前Activity的一些思考,感興趣的小伙伴們可以參考一下2016-02-02
Android 創(chuàng)建/驗(yàn)證/刪除桌面快捷方式(已測(cè)試可用)
桌面快捷方式的出現(xiàn)方便了用戶(hù)操作,在某些程度上提高了用戶(hù)體驗(yàn),接下來(lái)將介紹下Android創(chuàng)建/驗(yàn)證/刪除桌面快捷方式的實(shí)現(xiàn)思路及代碼,感興趣的朋友可以了解下,或許本文可以幫助到你2013-02-02
Android巧用ActionBar實(shí)現(xiàn)下拉式導(dǎo)航
這篇文章主要為大家詳細(xì)介紹了Android巧用ActionBar實(shí)現(xiàn)下拉式導(dǎo)航的相關(guān)資料,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Android中使用Matrix控制圖形變換和制作倒影效果的方法
這篇文章主要介紹了Android中使用Matrix控制圖形變換和制作倒影效果的方法,用Matrix來(lái)作矩陣變化十分強(qiáng)大,文中的制作倒影的例子便是一個(gè)十分巧妙的運(yùn)用,需要的朋友可以參考下2016-04-04

