주의 사항:
AndroidManifest에 아래와 같이 receiver 속성을 지정한다.
android:process=":remote" 없는 경우 동작하지 않음.
android:process=":remote"
android:name=".Alarm"
정확도와 overhead를 고려 어느 set함수를 호출할지 선택한다.
setRepeating vs setInexactRepeating
차이점은 검색해 보도록, 알람의 주기는 최소 1분이 되어야함.
public class Alarm extends BroadcastReceiver {
private final String LOG_TAG = "WifiMonitoringService";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG,"Alarm");
Toast.makeText(context, "Alarm", Toast.LENGTH_LONG ).show();
}
public void setAlarm(Context context)
{
AlarmManager am =( AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Alarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
//am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, 1000 * 60 * 1, pi); // Millisec * Second * Minute
am.setInexactRepeating(AlarmManager.RTC,
System.currentTimeMillis() + 1000, 60*1000, pi);
}
public void cancelAlarm(Context context)
{
Intent intent = new Intent(context, Alarm.class);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
}
}
참조 : https://developer.android.com/training/scheduling/alarms
https://androidclarified.com/android-example-alarm-manager-complete-working/
'android' 카테고리의 다른 글
| PDK에서 Android studio app을 gradle build 시 tips (0) | 2019.11.27 |
|---|---|
| android internet 연결 확인 (0) | 2019.11.27 |
| Android bp usage (0) | 2019.10.15 |
| voice search later Android P (0) | 2019.09.26 |
| Simple requestPermission (0) | 2019.09.26 |