欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實現(xiàn)簡易的鬧鐘功能

 更新時間:2022年09月11日 10:52:26   作者:volador_r  
這篇文章主要為大家詳細介紹了Android實現(xiàn)簡易的鬧鐘功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android實現(xiàn)簡易的鬧鐘功能的具體代碼,供大家參考,具體內容如下

主要是通過廣播,實現(xiàn)一個鬧鐘的簡易功能。

實現(xiàn)效果如下:

主界面為一個簡易的設置鬧鐘Button,點擊“設置鬧鐘”彈出時間設置窗。設置成功后,會自動彈出彈窗,提示“時間到了”。

打開Android Studio,選擇File>New>New Project,選擇Phone and Tablet設備下的Empty Activity,創(chuàng)建項目名稱為“DrinkRemind”,并點擊“Finish”,完成項目創(chuàng)建。

首先打開資源文件夾“res>layout>activity_main.xml”布局文件,創(chuàng)建主界面。這里我們需要一個設置鬧鐘的button,修改activity_main.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ?
?? ?android:orientation="vertical" ? ?
?? ?android:layout_width="fill_parent" ? ?
?? ?android:layout_height="fill_parent" ? ?
?? ?xmlns:app="http://schemas.android.com/apk/res-auto" ? ?
?? ?xmlns:tools="http://schemas.android.com/tools" ? ?
?? ?tools:context=".MainActivity"> ?
?? ? ?
?? ?<Button ? ? ? ?
?? ??? ?android:id="@+id/set_clock" ? ? ? ?
?? ??? ?android:layout_width="fill_parent" ? ? ? ?
?? ??? ?android:layout_height="wrap_content" ? ? ? ?
?? ??? ?android:text="設置鬧鐘"/>
</LinearLayout>

在MainActivity.java中,通過鬧鐘管理器 AlarmManager 來設定鬧鐘,通過TimePickerDialog 彈出鬧鐘設置窗口。修改MainActivity.java中的代碼如下:

public class MainActivity extends Activity { ? ?
?? ?private Button btn; ? ?
?? ?private AlarmManager alarmManager; ?//鬧鐘管理器 ? ?
?? ?
?? ?@Override ? ?
?? ?protected void onCreate(Bundle savedInstanceState) { ? ? ? ?
?? ??? ?super.onCreate(savedInstanceState); ? ? ? ?
?? ??? ?setContentView(R.layout.activity_main); ? ? ? ?

?? ??? ?//獲取鬧鐘管理器 ? ? ? ?
?? ??? ?alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); ? ? ? ?

?? ??? ?btn = (Button)findViewById(R.id.set_clock); ? ? ? ?
?? ??? ?btn.setOnClickListener(new View.OnClickListener() { ? ? ? ? ? ?
?? ??? ??? ?@Override ? ? ? ? ? ?
?? ??? ??? ?public void onClick(View view) { ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?setClock(view); ? ? ? ? ? ?
?? ??? ??? ?} ? ? ? ?
?? ??? ?}); ??
?? ?} ? ?

?? ?public void setClock(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 view, int hourOfDay, int minute) { ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?Calendar c = Calendar.getInstance(); ? ?//獲取日期對象 ? ? ? ? ??
?? ??? ??? ??? ?c.set(Calendar.HOUR_OF_DAY, hourOfDay); //設置鬧鐘小時數(shù) ? ? ? ? ? ? ?
?? ??? ??? ??? ?c.set(Calendar.MINUTE, minute); //設置鬧鐘分鐘數(shù) ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?//創(chuàng)建pendingIntent ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0X102, intent,0); ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?//設置鬧鐘 ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
?? ??? ??? ??? ?Toast.makeText(MainActivity.this, "鬧鐘設置成功", Toast.LENGTH_SHORT).show(); ? ? ? ? ? ?
?? ??? ??? ?} ? ? ? ?
?? ??? ?},hour,minute,true); ? ? ? ?
?? ??? ?timePickerDialog.show(); ? ?
?? ?}
}

當鬧鐘到達設定時間后,需要顯示鬧鐘的提醒框,這里新建AlarmActivity.java類,設置鬧鐘的提醒框,代碼如下:

public class AlarmActivity extends Activity { ? ?
?? ?@Override ? ?
?? ?public void onCreate(Bundle savedInstanceState) { ? ? ? ?
?? ??? ?super.onCreate(savedInstanceState); ? ? ? ?

?? ?//顯示鬧鐘提醒框 ? ? ? ?
?? ?new AlertDialog.Builder(AlarmActivity.this) ? ? ? ? ? ? ? ?
?? ??? ?.setTitle("鬧鐘") ? ? ? ? ? ? ? ?
?? ??? ?.setMessage("時間到了") ? ? ? ? ? ? ? ?
?? ??? ?.setPositiveButton("確定", new DialogInterface.OnClickListener(){ ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ?public void onClick(DialogInterface dialogInterface, int which) {
?? ??? ??? ??? ?AlarmActivity.this.finish(); ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ?} ? ? ? ? ? ? ? ?
?? ??? ?}).create().show(); ??
?? ?}
}

創(chuàng)建一個廣播接收類AlarmReceiver,繼承BroadcastRecevice并實現(xiàn)OnReceive方法即可。當廣播發(fā)送后,系統(tǒng)會去檢查廣播接收器的過濾器與廣播所發(fā)送的Intent是否一致, 如果一致則調用OnReceive方法。一旦接收到廣播,則會立即在OnReceive方法里調用AlarmActivity,顯示“時間到了”的彈窗。由于使用到了廣播機制,所以就算不開著AlarmActivity,也可以在后臺監(jiān)控這個廣播。AlarmReceiver實現(xiàn)代碼如下:

public class AlarmReceiver extends BroadcastReceiver {?
? ?
?? ?@Override ? ?
?? ?public void onReceive(Context context, Intent intent) { ? ? ? ?
?? ??? ?Intent i = new Intent(context, AlarmActivity.class);
?? ??? ?i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ? ? ? ?
?? ??? ?context.startActivity(i); ? ?
?? ?}
}

廣播類AlarmReceiver和提醒框類AlarmActivity需要在Manifest.xml中進行配置,打開AndroidMainfest.xml,在< application> 標簽下增加配置。

進行配置,打開AndroidMainfest.xml,在<application>標簽下增加配置。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
?? ?package="com.example.drinkremind"> ? ?

?? ?<application ? ? ? ?
?? ??? ?android:allowBackup="true" ? ? ? ?
?? ??? ?...... ? ? ? ?
?? ??? ?<activity android:name=".MainActivity"> ? ? ? ? ? ?
?? ??? ??? ?<intent-filter> ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?<action android:name="android.intent.action.MAIN" /> ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?<category android:name="android.intent.category.LAUNCHER" /> ? ? ? ? ? ?
?? ??? ??? ?</intent-filter> ? ? ? ?
?? ??? ?</activity> ? ? ? ?
?? ??? ?<activity android:name=".AlarmActivity"/> ? ? ? ?
?? ??? ?<receiver android:name=".AlarmReceiver" android:process=":remote"/> ? ?
?? ?</application>
</manifest>

基于以上代碼,我們就實現(xiàn)了一個簡單的Android端的鬧鐘提醒App,運行后,點擊主界面的“設置鬧鐘”按鍵,效果如圖所示。

完成鬧鐘設置,等待至到達鬧鐘設置時間后,界面會自動彈出“時間到了”的提醒框,如圖所示。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android 使用Path實現(xiàn)涂鴉功能

    Android 使用Path實現(xiàn)涂鴉功能

    到月底了最近比較空閑,今天抽空給大家實現(xiàn)一個涂鴉效果,會分幾步實現(xiàn),這里有一個重要的知識點就是圖層,要理解這個。下面先從簡單的說起,一起看看代碼吧
    2016-12-12
  • Android定時器Timer的停止和重啟實現(xiàn)代碼

    Android定時器Timer的停止和重啟實現(xiàn)代碼

    本篇文章主要介紹了Android實現(xiàn)定時器Timer的停止和重啟實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Flutter?DateTime日期轉換的詳細使用

    Flutter?DateTime日期轉換的詳細使用

    本文主要介紹了Flutter?DateTime日期轉換的詳細使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • android基本控件ToggleButton&Switch使用指南

    android基本控件ToggleButton&Switch使用指南

    本文給大家匯總介紹了android的2個基本控件ToggleButton和Switch的使用方法,非常的詳細,有需要的小伙伴可以參考下。
    2016-01-01
  • JankMan-極致的卡頓分析系統(tǒng)

    JankMan-極致的卡頓分析系統(tǒng)

    這篇文章主要為大家介紹了JankMan-極致的卡頓分析系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Android GPS詳解及示例代碼

    Android GPS詳解及示例代碼

    本文主要講解Android GPS,這里整理了GPS 的基礎知識資料,并提供示例代碼和實現(xiàn)效果圖,有興趣的小伙伴可以參考下
    2016-08-08
  • Android流式布局FlowLayout詳解

    Android流式布局FlowLayout詳解

    這篇文章主要為大家詳細介紹了Android流式布局FlowLayout的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android左右滑出菜單實例分析

    Android左右滑出菜單實例分析

    想在首頁加個從左滑動出來的菜單,我查閱網(wǎng)上資料,并自己摸索,實現(xiàn)了左、右兩邊都能滑出菜單,并且,左、右菜單中,都可以加ListView等這類需要解決GestureDetector沖突的問題
    2013-06-06
  • Android仿人人網(wǎng)滑動側邊欄效果

    Android仿人人網(wǎng)滑動側邊欄效果

    這篇文章主要為大家詳細介紹了Android仿人人網(wǎng)滑動側邊欄效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android List刪除重復數(shù)據(jù)

    Android List刪除重復數(shù)據(jù)

    這篇文章主要介紹了Android List刪除重復數(shù)據(jù)的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-06-06

最新評論