<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Android實現簡易的鬧鐘功能的具體程式碼,供大家參考,具體內容如下
主要是通過廣播,實現一個鬧鐘的簡易功能。
實現效果如下:
主介面為一個簡易的設定鬧鐘Button,點選“設定鬧鐘”彈出時間設定窗。設定成功後,會自動彈出彈窗,提示“時間到了”。
開啟Android Studio,選擇File>New>New Project,選擇Phone and Tablet裝置下的Empty Activity,建立專案名稱為“DrinkRemind”,並點選“Finish”,完成專案建立。
首先開啟資原始檔夾“res>layout>activity_main.xml”佈局檔案,建立主介面。這裡我們需要一個設定鬧鐘的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){ //獲取當前系統時間 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); //設定鬧鐘小時數 c.set(Calendar.MINUTE, minute); //設定鬧鐘分鐘數 Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); //建立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(); } }
建立一個廣播接收類AlarmReceiver,繼承BroadcastRecevice並實現OnReceive方法即可。當廣播傳送後,系統會去檢查廣播接收器的過濾器與廣播所傳送的Intent是否一致, 如果一致則呼叫OnReceive方法。一旦接收到廣播,則會立即在OnReceive方法裡呼叫AlarmActivity,顯示“時間到了”的彈窗。由於使用到了廣播機制,所以就算不開著AlarmActivity,也可以在後臺監控這個廣播。AlarmReceiver實現程式碼如下:
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>
基於以上程式碼,我們就實現了一個簡單的Android端的鬧鐘提醒App,執行後,點選主介面的“設定鬧鐘”按鍵,效果如圖所示。
完成鬧鐘設定,等待至到達鬧鐘設定時間後,介面會自動彈出“時間到了”的提醒框,如圖所示。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45