2011-12-16 21 views
1

毎週特定の時間に自分のアプリケーションで特定の関数を呼び出そうとしています。ここに私がやったことです:私は次のコードしている私の活動でBroadcastReceiverのonReceiveメソッドが呼び出されない

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 

PendingIntent pIntent; 

//my function to get first invoke time 
     long lAlarmStartTime = getAlarmStartTime(Calendar.SUNDAY, alrm); 

Intent intentArg = new Intent(getApplicationContext(), RcvAlarms.class).putExtra (ALARM_ALARM_ID, alrm.getMy_id()); 

pIntent = PendingIntent.getActivity(getApplicationContext(), 
       (int) task.getMy_id() * 10 + Calendar.SUNDAY, 
       intentArg, flag); 

am.setRepeating(AlarmManager.RTC_WAKEUP, lAlarmStartTime, 
       AlarmManager.INTERVAL_DAY * 7, pIntent); 

私は別の別のクラスを持っている:

public class RcvAlarms extends BroadcastReceiver { 

public RcvAlarms() { 
    // TODO Auto-generated constructor stub 
} 

@Override 
public void onReceive(Context context, Intent intent) {//my job } 

私のマニフェスト以下の受信タグを持っていますアプリケーションタグ内:

<receiver android:name=".RcvAlarms" android.text="Repeat Task Receiver"></receiver> 

誰かが私のデバイス時間が開始時間に達したときにonReceiveが呼び出されない理由を教えてください。

答えて

0

アラームを設定する際のコードは、アクティビティを起動させるために使用するコードです。私は、PendingIntent.getActivity()ではなく、PendingIntent.getBroadcast()が必要だと思います。

+0

お手伝いできますか?http://stackoverflow.com/questions/39901321/is-it-possible-to-call-onreceive-method-from-a-dialog –

関連する問題