Как мне запускать сервис ежедневно и в 12 часов, используя alarmmanager - PullRequest
3 голосов
/ 25 января 2012

Я пытаюсь ежедневно открывать новую службу в 19:00, которая уведомляет меня о запуске, но я не могу решить эту проблему и не могу понять, почему. может кто-нибудь помочь мне спасибо * Вот код


Вот код, который я написал в классе DaysCounterActivity

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 19);
    calendar.set(Calendar.MINUTE, 05);
    calendar.set(Calendar.SECOND, 00);


    Intent intent = new Intent(this, MyReciever.class);
    PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);


    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pintent);

и вот класс MyReviever для метода onRevcieve

    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    Intent serviceIntent = new Intent();
    serviceIntent.setAction("com.saaram.MyService");
    context.startService(serviceIntent);
}

1 Ответ

3 голосов
/ 25 января 2012

Ваша проблема в том, что pintent пытается запустить Службу, но MyReceiver - Широковещательный Приемник.Это сработало бы, если бы вы изменили MyReceiver на Сервис.

public class MyReceiver extends Service {


    public int onStartCommand(Intent intent, int flags, int startId) {
        //Anything you put here is run at the time you set the alarm to
        }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
        }

    }

В вашем манифесте вы бы просто объявили это так:

<service android:name=".MyReceiver"></service>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...