編輯:關於Android編程
Alarm就是我們通常說的鬧鐘,其實,在Android中實現一個簡單的鬧鐘功能並不是很難,原理就是在特定的事件廣播一個Intent,然後系統收到這個廣播以後,做出一個反應( Receive)。在Android中提供了四種類型的鬧鐘,分別是ELAPSED_REALTIME(在指定的延時後廣播通知,不喚醒設備)、ELAPSED_REALTIME_WAKEUP(在指定的延時後廣播通知,喚醒設備)、 RTC (在指定的時刻發送通知,不喚醒設備)、RTC_WAKEUP( 在指定的時刻發送通知,不喚醒設備)。在Android中實現鬧鐘最主要的幾個方法是:
void set(int type, long triggerAtTime, PendingIntent operation)
設置一個鬧鐘
void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
設置一個會重復的鬧鐘
void setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
設置一個重復鬧鐘的不精確版本
內置的幾個interval為: INTERVAL_FIFTEEN_MINUTES 、INTERVAL_HALF_HOUR、INTERVAL_HOUR、 INTERVAL_HALF_DAY、 INTERVAL_DAY
void cancel(PendingIntent operation)
取消一個鬧鐘
代碼實現片段:
am=(AlarmManager)getSystemService(ALARM_SERVICE); Intent intent=new Intent(); intent.setAction("com.Android.AlarmManager.action.BACK_ACTION"); intent.putExtra("Message", "學習編程累了,該休息一下啦"); pi=PendingIntent.getBroadcast(MainActivity.this, 0, intent,0); BtnOpen=(Button)findViewById(R.id.BtnOpen); BtnOpen.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //立即提醒 am.set(AlarmManager.RTC, System.currentTimeMillis(), pi); //每隔一分鐘提醒 //am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10000, pi); } });這樣我們就實現了發送廣播的過程,下面我們再來說接收的事情。
我們首先繼承BroadcastReceiver實現一個用以接收發出去的廣播的類Receiver。
public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, intent.getStringExtra("Message"), Toast.LENGTH_SHORT).show(); } }
然後在AndroidMainifest.xml中的application節點中加入下面的內容,完成Receiver的注冊
Android基礎入門教程——10.5 AlarmManager(鬧鐘服務)標簽(空格分隔): Android基礎入門教程本節引言: 本節帶來的A
老早用過小紅書app,對於他們客戶端筆記這塊的設計非常喜歡,恰好去年在小紅書的競爭對手公司,公司基於產品的考慮和產品的發展,也需要將app社交化,於是在社區分享這塊多多少
在android項目的開發中,有時為了實現和用戶更好的交互,在通知欄這一小小的旮旯裡,我們通常需要將內容豐富起來,這個時候我們就需要去實現自定義的通知欄,例如下面360或
上一篇《Qt on Android: Qt Quick 之 Hello World 圖文詳解》我們已經分別在電腦和 Android 手機上運行了第一個 Qt Quick