Android使用AlarmManager設置鬧鐘功能
本文實例為大家分享了Android使用AlarmManager設置鬧鐘的具體代碼,供大家參考,具體內(nèi)容如下
一、首先創(chuàng)建設置鬧鐘的布局頁面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="設置鬧鐘" /> </RelativeLayout>
二、創(chuàng)建AlarmActivity用于設置其到達指定時間后,彈出的一個對話,這個要在清單文件中注冊
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對應的Activity中設置鬧鐘
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) { ? ? ? ? ? ? ? ? //設置鬧鐘 ? ? ? ? ? ? ? ? Intent intent = new Intent(AlarmManagerActivity.this, AlarmActivity.class); ? ? ? ? ? ? ? ? //獲取顯示鬧鐘的PendingIntent ? ? ? ? ? ? ? ? //PendingIntent是對Intent的描述,主要用來處理即將發(fā)生的事情,這個Intent會由其他程序進行調(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ù) ? ? ? ? ? ? ? ? c.set(Calendar.HOUR_OF_DAY, timePicker.getHour()); ? ? ? ? ? ? ? ? //設置鬧鐘的分鐘數(shù) ? ? ? ? ? ? ? ? c.set(Calendar.MINUTE, timePicker.getMinute()); ? ? ? ? ? ? ? ? //設置鬧鐘的秒數(shù) ? ? ? ? ? ? ? ? c.set(Calendar.SECOND, 0); ? ? ? ? ? ? ? ? //第一個參數(shù):鬧鐘類型 ? ? ? ? ? ? ? ? //ELAPSED_REALTIME:在指定的延時后提醒(不喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //ELAPSED_REALTIME_WAKEUP:在指定的延時后提醒(喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //RTC:到達指定時間提醒(不喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //RTC_WAKEUP:到達指定時間提醒(喚醒系統(tǒng)) ? ? ? ? ? ? ? ? //第二參數(shù):指定時間,獲取日歷對象對應時間的毫秒數(shù) ? ? ? ? ? ? ? ? //第三個參數(shù):用于指定當鬧鐘喚醒時,所指定的頁面 ? ? ? ? ? ? ? ? alarm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent); ? ? ? ? ? ? ? ? Toast.makeText(AlarmManagerActivity.this, "鬧鐘設置成功!", Toast.LENGTH_SHORT).show(); ? ? ? ? ? ? } ? ? ? ? }); ? ? } }
效果如圖所示:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android直播系統(tǒng)平臺搭建之圖片實現(xiàn)陰影效果的方法小結
這篇文章主要介紹了Android直播系統(tǒng)平臺搭建, 圖片實現(xiàn)陰影效果的若干種方法,本文給大家?guī)砣N方法,每種方法通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08Android編程實現(xiàn)監(jiān)控各個程序流量的方法
這篇文章主要介紹了Android編程實現(xiàn)監(jiān)控各個程序流量的方法,涉及Android針對應用包的遍歷,權限控制及相關屬性操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-12-12Android 網(wǎng)絡請求框架解析之okhttp與okio
HTTP是現(xiàn)代應用常用的一種交換數(shù)據(jù)和媒體的網(wǎng)絡方式,高效地使用HTTP能讓資源加載更快,節(jié)省帶寬,OkHttp是一個高效的HTTP客戶端,下面這篇文章主要給大家介紹了關于OkHttp如何用于安卓網(wǎng)絡請求,需要的朋友可以參考下2021-10-10Android?webView加載數(shù)據(jù)時內(nèi)存溢出問題及解決
這篇文章主要介紹了Android?webView加載數(shù)據(jù)時內(nèi)存溢出問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12