【发布时间】:2014-10-27 13:32:56
【问题描述】:
我有从服务开始活动的任务,我正在使用以下代码:
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> 问题出在解锁阶段。在第一次发生事件时,手机会解锁但不会启动活动。如果手机解锁,则在第二次发生时,活动开始。
【问题讨论】:
-
可能解锁,注册
ACTION_USER_PRESENT广播,然后在广播接收器中开始你的活动? -
我不确定应该那么复杂
标签: android android-activity service