안 드 로 이 드 모 바 일 알 람 서비스 AlarmManagerk 개발 사례

AlarmManager 는 보통 모 바 일 알 람 을 개발 하 는 데 사용 되 며,전역 타이머 로 지정 한 시간 이나 지정 한 주기 에 다른 구성 요 소 를 시작 할 수 있 습 니 다(Activity,Service,BroadcastReceiver 포함).
AlarmManager 대상 가 져 오기:
getSystemService(Service.ALARM_SERVICE)
타이머 시작 지정 구성 요 소 를 설정 하 는 방법 을 호출 합 니 다:
set(int type,long triggerAtTime,PendingIntent operation)는 TriggerAtTime 시간 에 operation 매개 변수 가 지정 한 구성 요 소 를 시작 하도록 설정 합 니 다.
"첫 번 째 매개 변 수 는 정시 서비스의 유형 을 지정 합 니 다.그 값 은 다음 과 같 습 니 다."
ELAPSED_REALTime:지금부터 일정 시간 이 지나 면 operation 을 시작 하여 해당 구성 요 소 를 지정 합 니 다.
ELAPSED_REALTIME_WAKEUP:현실 시작 시간 이 일정 시간 지나 면 operation 대형 을 시작 하 는 구성 요 소 를 지정 하고,시스템 이 꺼 져 있어 도 operation 에 대응 하 는 구성 요 소 를 실행 합 니 다.
RTC:시스템 이 System.currentTimeMillls()방법 을 호출 하여 값 이 triggerAtTIme 과 같 을 때 operation 에 대응 하 는 구성 요 소 를 시작 하도록 지정 합 니 다.
RTC_WAKEUP:시스템 이 System.currentTimeMillls()방법 을 호출 하여 값 이 triggerAtTIme 과 같 을 때 operation 에 대응 하 는 구성 요 소 를 시작 합 니 다.시스템 이 꺼 져 있어 도 operation 에 대응 하 는 구성 요 소 를 실행 합 니 다."
setInexactRepeationg(int type,long triggerAtTIme,long interval,PendingIntent operation):부정 확 한 주기 적 작업 을 설정 합 니 다.
setRepeating(int type,long triggerAtTIme,long interval,PendingIntent operation):주기 적 인 정시 작업 을 설정 합 니 다.
cancle(PendingIntent operation)AlarmManger 정시 서비스 취소
예시:

핵심 코드:

public class MainActivity extends Activity {

 private AlarmManager alarmManager;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //  AlarmManager  
  alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);
 }

 public void btn(View view) {
  final Calendar c = Calendar.getInstance();
  TimePickerDialog dialog = new TimePickerDialog(this,
    new OnTimeSetListener() {
   //    (      )
   PendingIntent paIntent = PendingIntent.getActivity(MainActivity.this, 
     1, new Intent(MainActivity.this,SecondActivity.class), 
     PendingIntent.FLAG_UPDATE_CURRENT);
     @Override
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
      //         
      c.set(Calendar.HOUR_OF_DAY, hourOfDay);
      c.set(Calendar.MINUTE, minute);
      //              
      //              
      //               
      alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), paIntent);
     }
    }, 
    //      (   )
    c.get(Calendar.HOUR_OF_DAY),
    c.get(Calendar.MINUTE), 
    true);
  dialog.show();
 }
}

레이아웃:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.example.alarmmanager.MainActivity" >

 <Button
  android:onClick="btn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/btntext" />

</RelativeLayout>
이상 은 본 고의 모든 내용 입 니 다.여러분 이 안 드 로 이 드 소프트웨어 프로 그래 밍 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기