【问题标题】:Activity handle when screen unlocked屏幕解锁时的活动句柄
【发布时间】:2012-03-17 05:33:22
【问题描述】:

所以我有我的onResume 命令重新启动一个停止的线程,该线程运行我的游戏循环。 这非常适合在通过主页按钮关闭或专注于另一个应用程序时恢复应用程序。 但是,当您关闭屏幕然后再次打开时,活动onResume 命令会在屏幕解锁之前立即触发。我需要我的活动知道屏幕何时解锁,以便它可以在适当的时间重新启动线程。

以前有人遇到过这种情况吗?

【问题讨论】:

    标签: android screen unlock


    【解决方案1】:

    为了检测屏幕开启和屏幕关闭,注册一个广播接收器,例如:

    AndroidManifest.xml:

        <receiver android:name="receiverScreen">
            <intent-filter> 
                <action android:name="android.intent.action.SCREEN_ON" />
                <action android:name="android.intent.action.SCREEN_OFF" />
    <action android:name="android.Intent.ACTION_USER_PRESENT" />
            </intent-filter> 
        </receiver>
    

    在活动或服务中:

        try {
                  IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    
                  filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_USER_PRESENT);
    
                  BroadcastReceiver mReceiver = new receiverScreen();
    
                  registerReceiver(mReceiver, filter);
             } catch (Exception e) {
    
             }
    

    屏幕开/关发生时系统通知您的接收代码

     public class receiverScreen extends BroadcastReceiver {
    
         @Override
         public void onReceive(Context context, Intent intent) {
    
             if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
    
             }
            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
    
             }
    if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)){
    
             }
         }
    
        }
    

    【讨论】:

    • AndroidManifest.xml 的代码似乎没有包含在内。
    • 非常有帮助,但是 ACTION_SCREEN_OFF 仅在屏幕打开并出现解锁屏幕时执行,我需要在解锁屏幕解锁并消失时执行此操作
    • @tantonj 然后注册更多 BroadcastReceiver 接收器Intent.ACTION_USER_PRESENT
    • @tantonj 只有这三个Intent.ACTION_USER_PRESENTACTION_SCREEN_OFFACTION_SCREEN_ON 接收器可以在屏幕打开/关闭时通知系统
    • 太棒了!正是我需要的 Intent.ACTION_USER_PRESENT 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多