編輯:關於Android編程
AlarmManager 包含的主要方法:
[java]
// 取消已經注冊的與參數匹配的定時器
void cancel(PendingIntent operation)
//注冊一個新的延遲定時器
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)
//設置時區
void setTimeZone(String timeZone)
定時器主要類型:
[java]
public static final int ELAPSED_REALTIME
// 當系統進入睡眠狀態時,這種類型的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是相對時間,是從系統啟動後開始計時的,包括睡眠時 間,可以通過調用SystemClock.elapsedRealtime()獲得。系統值是3 (0x00000003)。
public static final int ELAPSED_REALTIME_WAKEUP
//能喚醒系統,用法同ELAPSED_REALTIME,系統值是2 (0x00000002) 。
public static final int RTC
//當系統進入睡眠狀態時,這種類型的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是絕對時間,所用時間是UTC時間,可以通過調用 System.currentTimeMillis()獲得。系統值是1 (0x00000001) 。
public static final int RTC_WAKEUP
//能喚醒系統,用法同RTC類型,系統值為 0 (0x00000000) 。
Public static final int POWER_OFF_WAKEUP
//能喚醒系統,它是一種關機鬧鈴,就是說設備在關機狀態下也可以喚醒系統,所以我們把它稱之為關機鬧鈴。使用方法同RTC類型,系統值為4(0x00000004)。
下面我們創建一個最簡單的alarm程序。 開機啟動一個broadcast,然後驅動一個alarm讓它每隔1秒鐘啟動一次。
public class test_chargeReceive extends BroadcastReceiver {
private static AlarmManager mAlarmManager=null;
private static PendingIntent mIdleIntent;
private static final int IDLE_REQUEST = 0;
static long now=0;
static AlertDialog dialog=null ;
@Override
public void onReceive(Context context, Intent intent) {
if(mAlarmManager==null){
mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent idleIntent = new Intent("com.keenhi.charge", null);
mIdleIntent = PendingIntent.getBroadcast(context, IDLE_REQUEST, idleIntent, 0);
// mAlarmManager.cancel(mIdleIntent);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, mIdleIntent);
}
String action = intent.getAction();
if (action.equals("com.keenhi.charge")){
mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, mIdleIntent);
now= System.currentTimeMillis();
Log.i("alrm timer now="+now);
}
}
manifest.xml的重要代碼:
<receiver android:name="test_chargeReceive">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="com.keenhi.charge"/>
</intent-filter>
</receiver>
上面程序的功能很簡單,一是讓它開機接收到"android.intent.action.BOOT_COMPLETED"廣播就啟動,然後建立一個alarm,每隔1秒鐘就發一次"com.keenhi.charge"。 為了簡單我們自發自收,收到後就顯示一個系統的目前的毫秒數。
上面的alarm是有一次,所以我們每次執行時再啟動一次alarm。這樣做比較通用我們想停就停,間隔時間也可以自由更改。 如果我們只需要實現一個重復的alarm,我們可以這樣做。
mAlarmManager.setInexactRepeating
(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, mIdleIntent);
我們設置一個重復鬧鐘就可以了,以後都不再需要重復賦值。
有過一些面試經驗的人基本都深有體會,每次面試一般都會問到Fragment的知識,所以,今天我就單獨把Fragment拿出來與大家分享一下. 會涉及到Fragment如
當我們用XML中寫完一個布局文件,想在某個Activity中顯示的時候,往往通過setContentView方法加載。在上一篇文章中,我們知道如何通過LayoutInfl
0.簡介GridView 和 ListView 有共同的父類:AbsListView,因此 GridView 和 ListView 具有一定 的相似性。GridView與
單Activity多Fragment實現底部導航器最近由於Android基礎知識講解需要,采用單Activity多Fragment實現類似QQ底部導航器示例,這種開發模式