Скорее всего, он не просыпается достаточно долго. Вы используете WakeLock, чтобы Android не возвращался спать?
Итак, во-первых, вам нужно, чтобы добавить это манифеста:
<uses-permission android:name="android.permission.WAKE_LOCK" />
, а затем в ресивере // псевдокод для частей, которые имеют значение, кроме ...
public WakeLock wl;
@Override
public void onReceive(c,i){
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);//this matters
wl.getWakeLock().acquire(); //as does this
//do whatever but DON'T do it here... call a Service like this...
Intent i = new Intent(context, MyExcellentService.class);
try {
PendingIntent.getService(context, 0,i, 0).send();
}catch(Exception e){}
//hold on to wl in some way and release it in the service, not here,
wl.getWakeLock().release();
}
Если вы собираетесь использовать услугу, вам необходимо зарегистрировать ее в своем манифесте, как это ...
<service android:name="MyExcellentService" />
И я бы расширьте приложение и держитесь там, где есть WakeLock, чтобы вам не пришлось проходить его более запутанно. Вы можете просто зайти в приложение и поговорить прямо с ним!
Вы хотите посмотреть разницу в * видах пробуждения PARTIAL_WAKE_LOCK не будет бодрствовать на экране, например, только фоновая обработка.
Сообщите мне, если это работает, я вырезаю и вставляю из разных мест, поэтому я могу что-то игнорировать.
Спасибо за информацию. Я буду возиться с этим сегодня вечером. – Brianide
У вас есть простой пример того, как запустить службу из BroadcastReceiver? Я все еще пытаюсь понять, как это работает. – Brianide
У меня все получилось. Сервис - это то, что мне нужно. Благодаря! – Brianide