当我的测试应用程序在前台运行持续通知时,我试图让屏幕始终处于开启状态。
当应用程序处于恢复状态时它工作正常,但是当我点击主页/中间按钮以将应用程序置于暂停状态同时在通知状态栏中显示正在进行的通知时它不起作用。
为什么getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
在前台/暂停状态下不起作用?
主要 Activity :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.main);
...
NotificationCompat.Builder OnGoingStatusBar = new NotificationCompat.Builder(this);
OnGoingStatusBar.setSmallIcon(R.drawable.image);
OnGoingStatusBar.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
OnGoingStatusBar.setTicker(Test);
OnGoingStatusBar.setContentTitle("Test");
OnGoingStatusBar.setContentText("Testing Message");
OnGoingStatusBar.setWhen(System.currentTimeMillis());
OnGoingStatusBar.setAutoCancel(false);
OnGoingStatusBar.setContent(notificationView).build();
OnGoingStatusBar.setOngoing(true); //Create OnGoing Status Bar
OnGoingStatusBar.setPriority(Notification.PRIORITY_MAX);
NotificationManager.notify(STATUSBAR_ID, OnGoingStatusBar.build());
}
最佳答案
你应该移动 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
下面setContentView()
并把 android:keepScreenOn="true"
进入主布局的 Root View 。
有关此主题的文档可能有用:https://developer.android.com/training/scheduling/wakelock.html#screen
关于android - 为什么 FLAG_KEEP_SCREEN_ON 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27384378/