我正在尝试做类似文件管理器的事情.在行动栏我想做"谷歌驱动"应用程序中的文件夹导航.我需要创建方法,可以从最后的数字或类似的东西前往活动.
例:
所以,如果我有堆栈:[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) 我需要使用watir-webdriver单击元素的特定坐标.使用selemium-webdriver,它看起来像:
@driver.action.move_to(element, 30, 0).click.perform
Run Code Online (Sandbox Code Playgroud)
但是如何与watir?
我写了功能测试,我需要做的测试取决于之前测试的通过.假设我有一个按钮,可以打开一个有功能的窗口.也就是说,为了检查这个功能,我需要先检查按钮的正确操作(即打开窗口或不起作用).因此,我需要这样做,如果单击按钮时测试失败,则测试不会运行以检查功能窗口.单独编写测试 - 对我来说不是一个选择.我想看到这样的事情:
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可以实现吗?如果没有,还有其他方式(宝石等)
我想创建一个简单的聊天.我不是服务器管理的大师.所以我对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 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进程,但我不知道该怎么做.
我有简单的代码
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)
我需要从中调用此方法的模块的名称.那么,有什么方法可以找出模块的名称