-1
を、私はそれが特定の時点から開始しますBrodcastReceiver、用のサンプルコードを実装していますが、そこに何か問題が私のコードであり、その動作していない...BrodcastReceiverが機能していない:アンドロイド
をここでは私のコードです:
活動に:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Calendar cur_cal = new GregorianCalendar(TimeZone.getTimeZone("IST"), Locale.US);
cur_cal.setTimeInMillis(System.currentTimeMillis());
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.add(Calendar.HOUR_OF_DAY, 13);
cal.add(Calendar.MINUTE, 10);
cal.add(Calendar.SECOND, 00);
cal.add(Calendar.MILLISECOND, 0);
cal.add(Calendar.DATE, 31);
cal.add(Calendar.MONTH, 10);
Intent intent = new Intent(HelloAlarmManagerActivity.this, ScheduleHandler.class);
PendingIntent pIntent = PendingIntent.getBroadcast(HelloAlarmManagerActivity.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 2*10, pIntent);
Toast.makeText(HelloAlarmManagerActivity.this, "Alarm seted", Toast.LENGTH_SHORT).show();
}
と私のBrodcastReceiverクラスとして次のとおりです。
public class ScheduleHandler extends BroadcastReceiver {
/* (non-Javadoc)
* @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
*/
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, "Alarm called", Toast.LENGTH_SHORT).show();
}
}
このアプリケーションを実行すると、最初のトーストメッセージしか表示されません。放送受信機が呼び出されないことを意味します。
私のコードに問題はありますか?
ちょうどアイデア:cal.add(Calendar.Month、10)今?どのような値がcal.getTimeInMillisであるかを調べてみてください。また、alarm.setRepeating(AlarmManager.RTC_WAKEUP、System.currentTimeMillis + 1000,2 * 10、pIntent)を試すこともできます。その単純なタイミングミスかどうかを確認するには –
@Rafael T cal.add(Calendar.Month、10)これは今から10ヶ月追加するという意味ですか?ああ、10月になるはずだと思っていましたが、10月(10月)に追加しました....今月の予定は? –