2012-03-07 4 views
4

나는 alarmManager를 사용하기로 결정한 서비스를 주기적으로 시작하려는 프로그램을 작성하고 있는데, 나는 이것을 내가 원하는 활동을 쉽게 할 수있게 만들었다.하지만 시도 할 때 오류가 발생했다. 수신기에서 알아낼 수없는 임무입니다.브로드 캐스트 리시버를 사용하여 Android에서 AlarmManager를 시작 하시겠습니까?

package com.testapp21.second.activities; 

import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.SystemClock; 

public class PhoneOnReceiver extends BroadcastReceiver { 
private PendingIntent mAlarmSender; 

@Override 
public void onReceive(Context context, Intent intent) { 
    mAlarmSender = PendingIntent.getService(context, 
       0, new Intent(context, StatsCheckerService.class), 0); 

    // We want the alarm to go off 30 seconds from now. 
     long firstTime = SystemClock.elapsedRealtime(); 

     // Schedule the alarm! 
     AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
     am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
         firstTime, 30*1000, mAlarmSender); 

} 

} 
+1

"ALARM_SERVICE를 변수로 해석 할 수 없다"는 말은 런타임에 예외가 발생했거나 무엇을 의미합니까? – Rasive

+0

그 밑줄이 빨간색 인 컴파일러에서 오류가 발생했습니다. 브로드 캐스트 수신기에서 다른 컨텍스트와 관련이 있다고 가정합니다. 그러나이를 수정하는 방법이 확실하지 않습니다. –

답변

9

AlarmManager am = (AlarmManager)context.getSystemService(Service.ALARM_SERVICE); 
+0

최상의 답변 일 수 있습니다! 그냥 작동하는지 확인해야합니다! –

1
보십시오 :

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

ALARM_SERVICE 변수 여기

그 리시버 내 전체 코드입니다에 해결 될 수 없음을 알려줍니다

나는 yo 당신이 할 수있는 단편에 있습니다

AlarmManager am = (AlarmManager)getActivity().getSystemService(Service.ALARM_SERVICE); 
관련 문제