У меня есть задание, чтобы начать деятельность от службы, и я использую следующий код:Начало деятельности от службы андроида
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
final KeyguardManager.KeyguardLock kl = km .newKeyguardLock("MyKeyguardLock");
kl.disableKeyguard();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();
Intent i = new Intent(this, someActivity.class);
i.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.putExtra("someName", theName);
startActivity(i);
Это прекрасно работает, когда приложение устанавливается в фоновом режиме. Но когда приложение закрыто, служба только разблокирует телефон, но не начинает мою деятельность. У любого из вас есть идея, как добиться необходимой функциональности. Заранее спасибо!
EDIT> Проблема находится где-то в фазе разблокировки. При первом событии телефон разблокируется, но не запускает активность. Во втором случае, если телефон разблокирован, начинается действие.
Возможный дубликат http://stackoverflow.com/questions/3606596/android-start-activity-from-service – mithrop
возможно разблокировать, зарегистрироваться для ' ACTION_USER_PRESENT', а в широковещательном приемнике начнет свою деятельность? – njzk2
Я не уверен, что этот комплекс –