Android使用AlarmManager設(shè)置鬧鐘功能
本文實例為大家分享了Android使用AlarmManager設(shè)置鬧鐘的具體代碼,供大家參考,具體內(nèi)容如下
一、首先創(chuàng)建設(shè)置鬧鐘的布局頁面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á)指定時間后,彈出的一個對話,這個要在清單文件中注冊
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對應(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是對Intent的描述,主要用來處理即將發(fā)生的事情,這個Intent會由其他程序進(jìn)行調(diào)用,這里是由鬧鐘調(diào)用
? ? ? ? ? ? ? ? PendingIntent pendingIntent = PendingIntent.getActivity(AlarmManagerActivity.this, 0, intent, 0);
? ? ? ? ? ? ? ? //獲取AlarmManager對象
? ? ? ? ? ? ? ? AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
? ? ? ? ? ? ? ? //獲取日歷對象
? ? ? ? ? ? ? ? Calendar c = Calendar.getInstance();
? ? ? ? ? ? ? ? //設(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);
? ? ? ? ? ? ? ? //第一個參數(shù):鬧鐘類型
? ? ? ? ? ? ? ? //ELAPSED_REALTIME:在指定的延時后提醒(不喚醒系統(tǒng))
? ? ? ? ? ? ? ? //ELAPSED_REALTIME_WAKEUP:在指定的延時后提醒(喚醒系統(tǒng))
? ? ? ? ? ? ? ? //RTC:到達(dá)指定時間提醒(不喚醒系統(tǒng))
? ? ? ? ? ? ? ? //RTC_WAKEUP:到達(dá)指定時間提醒(喚醒系統(tǒng))
? ? ? ? ? ? ? ? //第二參數(shù):指定時間,獲取日歷對象對應(yīng)時間的毫秒數(shù)
? ? ? ? ? ? ? ? //第三個參數(shù):用于指定當(dāng)鬧鐘喚醒時,所指定的頁面
? ? ? ? ? ? ? ? alarm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
? ? ? ? ? ? ? ? Toast.makeText(AlarmManagerActivity.this, "鬧鐘設(shè)置成功!", Toast.LENGTH_SHORT).show();
? ? ? ? ? ? }
? ? ? ? });
? ? }
}效果如圖所示:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中使用開源框架eventbus3.0實現(xiàn)fragment之間的通信交互
本文主要介紹了Android中使用開源框架eventbus3.0實現(xiàn)fragment之間的通信交互的方法,具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02
Android開發(fā)基礎(chǔ)使用ProgressBar加載進(jìn)度條示例
這篇文章主要介紹了安卓開發(fā)基礎(chǔ)使用ProgressBar加載進(jìn)度條示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android開發(fā)中關(guān)于獲取當(dāng)前Activity的一些思考
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)過程中,關(guān)于獲取當(dāng)前Activity的一些思考,感興趣的小伙伴們可以參考一下2016-02-02
Android 創(chuàng)建/驗證/刪除桌面快捷方式(已測試可用)
桌面快捷方式的出現(xiàn)方便了用戶操作,在某些程度上提高了用戶體驗,接下來將介紹下Android創(chuàng)建/驗證/刪除桌面快捷方式的實現(xiàn)思路及代碼,感興趣的朋友可以了解下,或許本文可以幫助到你2013-02-02
Android巧用ActionBar實現(xiàn)下拉式導(dǎo)航
這篇文章主要為大家詳細(xì)介紹了Android巧用ActionBar實現(xiàn)下拉式導(dǎo)航的相關(guān)資料,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下2016-05-05
Android中使用Matrix控制圖形變換和制作倒影效果的方法
這篇文章主要介紹了Android中使用Matrix控制圖形變換和制作倒影效果的方法,用Matrix來作矩陣變化十分強大,文中的制作倒影的例子便是一個十分巧妙的運用,需要的朋友可以參考下2016-04-04

