2012-03-07 7 views
4

私はalarmManagerを使用することに決めたので、定期的にサービスを開始しようとする意欲を失うプログラムを書いています。私はこれを私の活動でかなり簡単にやり遂げることができましたが、私が理解できない受信機でそれをすること。ブロードキャストレシーバを使用してAndroidでAlarmManagerを起動しますか?

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

がここに変数

に解決することはできませんALARM_SERVICEがそのレシーバのための私の完全なコードであることを私に伝えます:

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
をお試しください

私はyoあなたがこれを行うことができる断片にあります

AlarmManager am = (AlarmManager)getActivity().getSystemService(Service.ALARM_SERVICE); 
関連する問題