小编Mig*_*eno的帖子

UIApplication.statusBarStyle在viewWillAppear和viewDidAppear之间更改

在最初为以前版本设计的iOS7中运行应用程序时,深灰色导航栏会调整其文本为黑色的状态栏.

我正在尝试将其改编为最新版本,我将UIApplication.statusBarStyle设置为UIStatusBarStyleLightContent,如下所示:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
Run Code Online (Sandbox Code Playgroud)

这段代码应该将状态栏文本颜色更改为白色,但不会.我在我的UIApplication实例的_statusBarRequestedStyle属性中放置了一个观察点,我可以通过执行viewWillAppear和viewDidAppear方法之间的UIApplicationMain调用将其设置为0(UIStatusBarStyleDefault).

我无法弄清楚状态栏样式在这一点上有什么/为什么会改变,如果您有相同的经验,我将不胜感激.

提前致谢!

编辑:来自iOS 7 UI过渡指南(https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html)

在iOS 7中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时进行更改.如果您希望选择不使用此行为并使用UIApplication statusBarStyle方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance键添加到应用程序的Info.plist文件中,并为其赋值NO.

iphone objective-c statusbar ios

4
推荐指数
2
解决办法
829
查看次数

在 HTTPServer 中的 Executors.newFixedThreadPool 中设置可用处理器

我正在构建一个需要同时处理多个请求的 HTTPServer。

我构建的主要功能如下:

public static void main(String[] args) throws Exception {
    HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
    server.createContext("/", new MyRequestDispatcher());

    server.setExecutor(Executors.newCachedThreadPool());
    server.start();
}
Run Code Online (Sandbox Code Playgroud)

现在我正在考虑它如何Executors.newCachedThreadPool()在创建的线程数量方面发挥作用。正如我所读到的,要创建的线程数量不受限制,如果我同时收到一千个请求,它会创建一千个线程吗?

我正在考虑限制同时创建的线程数量,以便在运行它的机器中正确处理。我想到了这样的事情:

Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())
Run Code Online (Sandbox Code Playgroud)

目标是根据系统中的可用处理器仅创建给定数量的线程。

这行得通吗?

提前致谢!!

java multithreading httpserver executors

3
推荐指数
1
解决办法
2037
查看次数