AndroidにおけるAlarmManagerの基本的な使い方分析
4692 ワード
この実例は、AndroidにおけるAlarmManagerの基本的な使い方を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
AlarmManagerの役割文書では、特定の時刻に指定されたIntentを放送してくれると説明しています。簡単に言えば、時間を設定して、その時間が来たら、私たちが設定したIntentを放送してくれます。
AlarmManagerに対するより深い理解は参考にできます。
https://www.jb51.net/article/90491.htm
androidは4種類の目覚まし時計を提供しています。
①ELLAPSED_REALTIME
指定された遅延後に放送を送信しますが、デバイスを起動しません。
②ELLAPSED_REALTIME_WAKEUP
指定されたプレゼンテーションの後、ブロードキャストを送信し、デバイスを起動します。
遅延はシステムの起動時間SystemClock.elappsedRealtimeを計算して、具体的な使い方はコードを見ます。
③RTC
指定された時刻に放送を送りますが、デバイスを起動しません。
④RTC_WAKEUP
指定された時刻に放送を送信し、デバイスを起動する。
AlarmManagerが提供する方法:
1.void set(int type、long trigger AtTime、PendingIntent operation)
目覚まし時計をセットします
2.void set Repeat(int type、long trigger AtTime、long interval、PendingIntent operation)
繰り返すアラームをセットします。
3.void set InexactRepeating(int type、long trigger AtTime、long interval、PendingIntent operation)
繰り返しアラームの不正確なバージョンを設定します。それは比較的に省エネルギーです。システムはいくつかのほぼ同じアラームを一つに統合して実行し、デバイスの起動回数を減らすためです。
いくつかのインターバールを内蔵しています。
INTERVALFIFTEEN_MINUTES
INTERVALHALF_HOUR
INTERVALHOUR
INTERVALHALF_DAY
INTERVALDAY
DAYにすると、この日の目覚まし時計は全部合わせられてしまうかもしれません。
5 s後に指定放送を送ります。
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。
AlarmManagerの役割文書では、特定の時刻に指定されたIntentを放送してくれると説明しています。簡単に言えば、時間を設定して、その時間が来たら、私たちが設定したIntentを放送してくれます。
AlarmManagerに対するより深い理解は参考にできます。
https://www.jb51.net/article/90491.htm
androidは4種類の目覚まし時計を提供しています。
①ELLAPSED_REALTIME
指定された遅延後に放送を送信しますが、デバイスを起動しません。
②ELLAPSED_REALTIME_WAKEUP
指定されたプレゼンテーションの後、ブロードキャストを送信し、デバイスを起動します。
遅延はシステムの起動時間SystemClock.elappsedRealtimeを計算して、具体的な使い方はコードを見ます。
③RTC
指定された時刻に放送を送りますが、デバイスを起動しません。
④RTC_WAKEUP
指定された時刻に放送を送信し、デバイスを起動する。
AlarmManagerが提供する方法:
1.void set(int type、long trigger AtTime、PendingIntent operation)
目覚まし時計をセットします
2.void set Repeat(int type、long trigger AtTime、long interval、PendingIntent operation)
繰り返すアラームをセットします。
3.void set InexactRepeating(int type、long trigger AtTime、long interval、PendingIntent operation)
繰り返しアラームの不正確なバージョンを設定します。それは比較的に省エネルギーです。システムはいくつかのほぼ同じアラームを一つに統合して実行し、デバイスの起動回数を減らすためです。
いくつかのインターバールを内蔵しています。
INTERVALFIFTEEN_MINUTES
INTERVALHALF_HOUR
INTERVALHOUR
INTERVALHALF_DAY
INTERVALDAY
DAYにすると、この日の目覚まし時計は全部合わせられてしまうかもしれません。
void cancel(PendingIntent operation)
セットしたアラームをキャンセルします。
void setTimeZone(String timeZone)
システムのデフォルトタイムゾーンを設定します。Android.permission.SET_が必要です。TIME_ZONE権限
// Receiver
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "alarm", Toast.LENGTH_SHORT).show();
}
}
// manifest , intent-filter, receiver
<receiver android:name="yuan.receivers.AlarmReceiver" />
PendingIntent:簡単に言えばIntentに指定された動作を加えることです。Intentの場合は、startActivity、startServiceまたはsendBroadcastを実行してこそIntentが役に立ちます。PendingIntentはこの動作を含めています。例えばPendingIntent.get BroadcastはsendBroadcastの動作を含みます。5 s後に指定放送を送ります。
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
int requestCode = 0;
PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 5 ,
int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;
alarmMgr.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, pendIntent);
5秒後に指定放送を送り、10秒ごとに放送を繰り返します。
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
int requestCode = 0;
PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 5 , 10 。 AlarmReceiver
int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;
int interval = 10 * 1000;
alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, interval, pendIntent);
目覚まし時計を一つキャンセルします
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// intent (filterEquals(intent))
alarmMgr.cancel(pendIntent);
Android関連の内容についてもっと興味がある読者は、当駅のテーマを調べてもいいです。「Android開発入門と上級教程」、「Androidデバッグ技術とよくある問題解決方法のまとめ」、「Androidマルチメディア操作技術まとめ(オーディオ、ビデオ、録音など)」、「Android基本コンポーネントの使い方のまとめ」、「AndroidビューViewテクニックのまとめ」、「Androidレイアウトlayout技巧まとめ」および「Androidコントロールの使い方のまとめ」ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。