0

如果屏幕被锁定,我想推迟我的活动。例如,如果屏幕被锁定,我想检测用户何时解锁屏幕,然后立即开始我的活动。这就是我目前用来检测它是否被锁定的方法。但我似乎无法弄清楚如何在解锁后立即开始我的活动?KeyguardManager 会在屏幕解锁时自动更新吗?谢谢!

KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
 if( myKM.inKeyguardRestrictedInputMode()) {
 //it is locked
 else
 {
  //it is unlocked
} 
4

1 回答 1

1

我不知道 KeyguardManager 的行为,但我可以为您提供使用广播接收器的替代解决方案。

在我的应用程序中,我执行了以下操作:

  1. 创建扩展 BroadcastReceiver 的新类
  2. 在清单中注册接收器并分配以下意图过滤器:

    <receiver android:name="com.the.phonagramtwo.UserPresentReciever" >
        <intent-filter>
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    
  3. 在 onRecieve 方法中定义解锁后所需的行为

    public class UserPresentReciever extends BroadcastReceiver {
    
        public void onReceive(Context context, Intent intent) {
            Activity a = new Activity;
            Intent i = new Intent(a.getBaseContext(), ActivityYouWithToStart.class);
            a.startActivity(i);
        }
    }
    
于 2013-09-02T00:17:50.547 回答