我正在尝试让屏幕始终打开,而我的测试应用程序处于前台并且正在运行Ongoing Notification。 当应用程序处于恢复状态时,它可以正常工作,但是当我点击主页/中间按钮将应用程序置于暂停状态,同时在通知状态栏中显示正在进行的通知时,它无法正常工作。
为什么getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
无法在前台/暂停状态下工作?
MainActivity:
@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());
}
答案 0 :(得分:1)
您应将getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
移到setContentView()
下方,并将android:keepScreenOn="true"
放入主要布局的根视图中。
有关此主题的文档可能很有用:https://developer.android.com/training/scheduling/wakelock.html#screen
答案 1 :(得分:1)
我已经在我的一个应用程序中完成了这项工作,它对我来说非常有用。
请正确执行这些步骤。
第1步:
File "C:\Program Files\Anaconda3\lib\multiprocessing\pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "C:\Program Files\Anaconda3\lib\multiprocessing\pool.py", line 47, in starmapstar
return list(itertools.starmap(args[0], args[1]))
File "D:\PycharmProjects\IQA\paralle_test.py", line 109, in predict
getvalue(file)
File "D:\PycharmProjects\IQA\paralle_test.py", line 104, in getvalue
print('no checkpoint found')
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1208, in __exit__
self._default_graph_context_manager.__exit__(exec_type, exec_value, exec_tb)
File "C:\Program Files\Anaconda3\lib\contextlib.py", line 66, in __exit__
next(self.gen)
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3520, in get_controller
if self.stack[-1] is not default:
IndexError: list index out of range
"""\tensor
flo
第2步: 现在你需要设置屏幕,
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
您也可以将其添加到XML布局的根目录。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = getLayoutInflater().inflate(R.layout.layout_activity, null);
view.setKeepScreenOn(true);
setContentView(view);
}
我按照这些步骤操作,似乎对我来说非常合适。