Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 手机解锁后开始我的活动_Android_Multithreading - Fatal编程技术网

Android 手机解锁后开始我的活动

Android 手机解锁后开始我的活动,android,multithreading,Android,Multithreading,如果屏幕被锁定,我想推迟我的活动。例如,如果屏幕被锁定,我想检测用户何时解锁屏幕,然后立即开始我的活动。这是我目前用来检测它是否被锁定的。但我似乎不知道如何在解锁后立即开始我的活动?当屏幕解锁时,KeyguardManager是否自动更新?谢谢 KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); if( myKM.inKeyguardRestrictedInpu

如果屏幕被锁定,我想推迟我的活动。例如,如果屏幕被锁定,我想检测用户何时解锁屏幕,然后立即开始我的活动。这是我目前用来检测它是否被锁定的。但我似乎不知道如何在解锁后立即开始我的活动?当屏幕解锁时,KeyguardManager是否自动更新?谢谢

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

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

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

  • 创建扩展BroadcastReceiver的新类
  • 在清单中注册接收者并分配以下意向筛选器:

    <receiver android:name="com.the.phonagramtwo.UserPresentReciever" >
        <intent-filter>
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    

  • 谢谢你。这个onReceive类会自动检测用户是否解锁它吗?如果它有助于这样想,我想这没关系,但它并不完全准确。我强烈建议您阅读以下内容。这本书冗长、枯燥无味,但它解释了很多关于这个话题的内容。请注意广播接收器部分。感谢您的解释:D
    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);
        }
    }