所以我让我的onResume
命令重新启动一个运行我的游戏循环的停止线程。
这非常适合在通过主页按钮关闭或通过关注其他应用程序时恢复应用程序。
但是,当您关闭屏幕然后再打开时,活动onResume
命令会在屏幕解锁之前立即触发。我需要我的活动来知道屏幕何时解锁,以便它可以在适当的时间重新启动线程。
有没有人在此之前发生过这种情况?
答案 0 :(得分:16)
用于检测屏幕和屏幕关闭注册广播接收器,如:
<强>的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)){
}
}
}