0

Я спровоцировав IntentService от WakefullBroadcastReceiverКогда устройство находится IntentService сон не вызывался

Intent i = new Intent(context, MyService.class); 
    i.putExtras(bundle); 
    Log.i("StartService","Before Wakelock"); 
    WakeLock lock = MyService.getLock(context); 
    Log.i("StartService","After Wakelock"); 
    lock.acquire(); 
    Log.i("StartService","After Aquire"); 
    context.startService(i);  
    lock.release(); 
    Log.i("StartService","After Release"); 

Все вышеуказанные журналы Начало отображаются. Но мое обслуживание не вызвано.

IntentService

public class MyService extends IntentService { 
private static final String NAME = MyService.class.getName() + ".Lock"; 
private static volatile WakeLock lockStatic = null; 

synchronized public static PowerManager.WakeLock getLock(Context context) { 
    if (lockStatic == null) { 
     PowerManager mgr = (PowerManager) context 
       .getSystemService(Context.POWER_SERVICE); 
     lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, NAME); 
     lockStatic.setReferenceCounted(true); 
    } 
    return (lockStatic); 
} 

public MyService(String name) { 
    super(name); 
} 

public MyService() { 
    super("MyService"); 
} 

@Override 
protected void onHandleIntent(Intent intent) { 
    try { 
     Log.i("IntentService", "In HandleIntent"); 
    } finally { 

    } 

} 

} 

Может кто-нибудь мне помочь ??

+2

Заявили вы вашу службу в файле манифеста? – Kartheek

+0

Если вы действительно используете 'WakefulBroadcastReceiver', и используете его в соответствии с документацией, вам не нужен собственный' WakeLock'. – CommonsWare

+0

@Kartheek Да, и когда устройство активно, услуга набирается – user3616287

ответ

0

В onCreate() вам нужно добавить флаги в окно. Например:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);` 
} 

Я уже отправил мой здесь check this

Смежные вопросы