小编fac*_*ool的帖子

从堆栈返回特定活动

我正在尝试做类似文件管理器的事情.在行动栏我想做"谷歌驱动"应用程序中的文件夹导航.我需要创建方法,可以从最后的数字或类似的东西前往活动.

例:

所以,如果我有堆栈:[1] - > [2] - > [3] - > [4] - > [5]

我需要去第二个:所以我需要从堆栈中删除[3],[4]和[5]并转到[2].

所有活动都是一个类ContentActivity.java.

怎么可能呢?

更新:

一些代码我如何开始活动:

public class ContentActivity extends Activity implements AdapterView.OnItemClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);

        Intent intent = getIntent();
        String folderToOpen = intent.getStringExtra("folderName");
        fillList(folderToOpen);
    }


    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        ...
        Intent intent = new Intent(ContentList.this, ContentList.class);
        intent.putExtra("folderName", item.getName());
        startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-activity activity-manager

13
推荐指数
2
解决办法
8569
查看次数

如何单击元素的特定坐标

我需要使用watir-webdriver单击元素的特定坐标.使用selemium-webdriver,它看起来像:

@driver.action.move_to(element, 30, 0).click.perform
Run Code Online (Sandbox Code Playgroud)

但是如何与watir

ruby watir-webdriver

8
推荐指数
1
解决办法
3503
查看次数

rspec中的相关测试

我写了功能测试,我需要做的测试取决于之前测试的通过.假设我有一个按钮,可以打开一个有功能的窗口.也就是说,为了检查这个功能,我需要先检查按钮的正确操作(即打开窗口或不起作用).因此,我需要这样做,如果单击按钮时测试失败,则测试不会运行以检查功能窗口.单独编写测试 - 对我来说不是一个选择.我想看到这样的事情:

describe "some tests" do
  open_result = nil

  it "should check work button" do
    click_to_button()
    open_result = window_opened?
    open_result.should == true
  end

  if open_result

    describe "Check some functional" do

      it "should check first functional"

      it "should check second functional"

    end

  end

end
Run Code Online (Sandbox Code Playgroud)

我知道这种方法对rspec不起作用.这只是我想看到的简单描述.使用rspec可以实现吗?如果没有,还有其他方式(宝石等)

ruby testing automated-tests rspec

8
推荐指数
1
解决办法
2669
查看次数

Faye-rails,ngnix,乘客对来自faye的反应迟钝

我想创建一个简单的聊天.我不是服务器管理的大师.所以我对ngnix和faye有疑问.

我使用ngnix + passenger作为我的生产服务器.我在digitalocean上有一个Droplet,并且希望在此部署我的应用程序.所以对于部署我使用官方乘客教程https://www.phusionpassenger.com/library/install/nginx/install/oss/trusty/

对于模型回调,我使用faye-rails gem.就像faye-rails所说,如果我使用乘客,我需要使用这种配置

config.middleware.use FayeRails::Middleware, mount: '/faye', :timeout => 25, server: 'passenger', engine: {type: Faye::Redis, host: 'localhost'} do
  map '/announce/**' => SomeController  
end
Run Code Online (Sandbox Code Playgroud)

在我的开发localhost:3000聊天工作非常快.但是当我部署它时,它的工作速度非常慢(响应时间间隔为5到60秒).我不知道如何解决它.

在我的/etc/ngnix/sites-enabled/myapp.conf中我使用此配置:

server {
    listen 80;
    server_name server_ip;

    # Tell Nginx and Passenger where your app's 'public' directory is
    root /project_path_to_public;

    # Turn on Passenger
    passenger_enabled on;
    passenger_ruby /ruby_wrapper_path;

}
Run Code Online (Sandbox Code Playgroud)

需要我升级我的/etc/ngnix/sites-enabled/myapp.conf以及如何?或者我需要做什么?

ruby-on-rails passenger nginx faye

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

杀死Thread ruby​​中的系统进程

我如何在ruby Thread中杀死ping(或其他非常非常长的没有超时等系统进程)(ping - 这只是一个简单的例子):

a = Thread.new do
    system 'ping localhost'
end

a.kill
a.exit
a.terminate

while true
    sleep 5
    p a.alive?
end
Run Code Online (Sandbox Code Playgroud)

输出:=>

PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.023 ms
....
true
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=7 ttl=64 time=0.022 ms
.....
true
......
Run Code Online (Sandbox Code Playgroud)

所以我需要用Thread停止ping进程,但我不知道该怎么做.

ruby multithreading

4
推荐指数
1
解决办法
795
查看次数

方法中的模块名称

我有简单的代码

module Foo
  def foo
    p self
    #p 'Foo' -> bad decision for me
  end
end

class Bar
  include Foo
end

Bar.new.foo #=> #<Bar:0x00000002f0faf8> 
Run Code Online (Sandbox Code Playgroud)

但我需要这样的东西

Bar.new.foo #=> Foo
Run Code Online (Sandbox Code Playgroud)

我需要从中调用此方法的模块的名称.那么,有什么方法可以找出模块的名称

ruby metaprogramming

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