小编Tik*_*boy的帖子

Android:当屏幕上的键盘出现或消失时,是否有任何自动调用的监听器?

我想知道是否有任何方式可以在屏幕键盘显示或消失时由android自动通知。

例如,当我们单击一个编辑文本时,将显示ime。会有活动电话吗?当我们按回去时它消失时,同样会有呼叫吗?

我发现这个线程是Android:屏幕键盘出现时触发哪个事件?,但尚未找到答案。

目的是因为我需要一个事件来自动操纵可见性。我有一个活动,在屏幕顶部,下面有一个edittext,一个listview和一个linearlayout彼此重叠。为了控制用户看到的内容,我操纵可见性。默认情况下,最初显示线性布局,但是,当用户输入文本时,应改为显示列表视图。用户完成键入后,列表视图应消失,在这种情况下,屏幕键盘将关闭。

我尝试使用onFocusChange来完成可见性的更改,但是,即使屏幕键盘消失了,edittext仍然会保持焦点,并且线性布局不会再出现。

下面是我对onFocusChange的实现

@Override
public void onFocusChange(View v, boolean hasFocus) 
{
    if(v.getId()==R.id.search_screen_keyword_textbox)
    {
        if(hasFocus)
        {
            filterSection.setVisibility(View.GONE);
            autoComSection.setVisibility(View.VISIBLE);
        }
        else
        {
            filterSection.setVisibility(View.VISIBLE);
            autoComSection.setVisibility(View.GONE);
        }
    }       
    else if(v.getId()==R.id.search_screen_location_textbox)
    {
        if(hasFocus)
        {
            filterSection.setVisibility(View.GONE); 
            autoComSection.setVisibility(View.VISIBLE);
        }
        else
        {
            filterSection.setVisibility(View.VISIBLE);
            autoComSection.setVisibility(View.GONE);
        }
    }
    else
    {
        filterSection.setVisibility(View.VISIBLE);
        autoComSection.setVisibility(View.GONE);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人对此有任何想法,请告诉我。:D

android on-screen-keyboard

5
推荐指数
1
解决办法
6351
查看次数

Puma或Unicorn VS Webbrick负载测试基准测试没有任何改进

安装程序

好的,我正在Heroku上运行rails应用程序(免费套餐).

我有2个独立的应用程序版本,我们称之为StagingFake-Production.

Staging中,我使用Webbrick作为服务器.我的Procfile

web: rails s -p $PORT
Run Code Online (Sandbox Code Playgroud)

Fake-Production中,我使用Puma作为服务器.我的Procfile

bundle exec puma -C config/puma.rb
Run Code Online (Sandbox Code Playgroud)

我已经配置puma运行2个工人和每个工人1个线程. config/puma.rb定义如下(取自Heroku的设置Puma Webserver)

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 1)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-    with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end
Run Code Online (Sandbox Code Playgroud)

database.yml被配置为具有20的连接池.

考试

为了进行负载测试,我使用笔记本电脑中的ApacheBench工具来访问API端点.API基本上做了一个非常简单的数据库查询,以返回固定数量的记录(不会更改).

我使用以下代码点击了两个部署:

ab -n 1000 …
Run Code Online (Sandbox Code Playgroud)

ruby performance multithreading ruby-on-rails heroku

5
推荐指数
1
解决办法
1275
查看次数