android
android alarm 세팅
easy16
2019. 11. 27. 14:29
주의 사항:
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/