我有一个运行后台的IntentService并监听传入的TCP消息。收到所需的消息后,设备应该唤醒并且MainActivity位于顶部。
我可以启动一个新的MainActivity并唤醒设备,但后来我有很多实例。最好的解决方案是向MainActivity发送广播消息,但是我无法唤醒屏幕。
我设置了这些权限:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
我在onResume()
中有这个final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
我甚至可以调用我的onResume()函数,但屏幕是黑色的。当我将MainActivity设置为singleTop时,启动新的MainActivity会使屏幕变黑。
有什么想法吗?