如果屏幕被锁定,我想推迟我的活动。例如,如果屏幕被锁定,我想检测用户何时解锁屏幕,然后立即开始我的活动。这就是我目前用来检测它是否被锁定的内容。但我似乎无法弄清楚如何在解锁后开始我的活动?当屏幕解锁时,KeyguardManager会自动更新吗?谢谢!
KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if( myKM.inKeyguardRestrictedInputMode()) {
//it is locked
else
{
//it is unlocked
}
答案 0 :(得分:1)
我不知道KeyguardManager的行为,但我可以使用广播接收器为您提供替代解决方案。
在我的应用中,我做了以下事情:
在清单中注册接收器并分配以下intent-filter:
<receiver android:name="com.the.phonagramtwo.UserPresentReciever" >
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
在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);
}
}