Привет, прочитанный другой вопрос ответил на это, но ответы никогда не разрешают мою проблему.Запуск службы Alarm Manager на Android?
Я хочу, чтобы запустить службу по истечении определенного времени с менеджером Alarm
alarmMgr = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmServiceIntent=new Intent(ListActivity.this, AlarmLevelServiceImproved.class);
alarmServiceIntent.putExtra("username",usernameID);
alarmServiceIntent.putExtra("password",userPass);
alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, alarmServiceIntent, 0);
. . .
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND,10);
//calendar.set(Calendar.HOUR_OF_DAY, 19);
//alarmMgr.setInexactRepeating(AlarmManager.RTC,calendar.getTimeInMillis(),
// AlarmManager.INTERVAL_HALF_HOUR,alarmIntent);
//alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
// 1000 * 10, alarmIntent);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
Log.d("MioLog", "Alarm setted");
Моя служба:
public class AlarmLevelServiceImproved extends Service {
@Override
public void onCreate() {
Log.d("MioLog","MyAlarmService.onCreate()");
Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent intent) {
Log.d("MioLog","MyAlarmService.onBind()");
Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show();
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("MioLog","MyAlarmService.onDestroy()");
Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("MioLog","MyAlarmService.onStart()");
Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
return super.onStartCommand(intent, flags, startId);
}
}
И я добавляю это на AndroidManifest.xml (класс обслуживания на подпакет «услуги»):
<service
android:name=".services.AlarmLevelServiceImproved"
android:enabled="true" />
Но служба не запускается и журнал не печатается.
Любая идея, как запустить службу с помощью AlarmManager?
Я также suived this tutorial, но я не нахожу никакой разницы в моем коде
Благодарности
Ну, вы не начинаете свое обслуживание нигде. Вам нужно запустить его как 'startService (новый Intent (этот, AlarmLevelServiceImproved .class));' – Marcus
Да, я могу запустить сервис вручную, но мне нужно, чтобы обслуживание начнется каждые X секунд. Как это сделать с помощью AlarmManager? – Simoyw