BroadcastReceiver не работает: Android - PullRequest
0 голосов
/ 31 октября 2011

Я реализую пример кода для BroadcastReceiver, где он будет запускаться в определенное время, но в моем коде есть проблема, и он не работает ..

Вот мой код:

В деятельности:

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();
    }


}

После запуска этого приложения я получаю только первое тост-сообщение. Это означает, что приемник вещания не вызывается.

Есть ли проблема в моем коде?

1 Ответ

1 голос
/ 31 октября 2011

Похоже, ваш интервал повторения составляет 20 (2 * 10) миллисекунд.Я понятия не имею, как телефоны будут реагировать на это, но это может быть причиной вашей проблемы

...