我需要在以下场景中测试我的应用程序:
我可以模拟这将adsl电缆从我的电路中拉出来,但是它不能足够快地重新连接。 这是以编程方式模拟这个吗?
答案 0 :(得分:3)
如果您有Mac,可以使用网络链接调节器进行操作。它真的很有效,请看这里安装它的步骤:
答案 1 :(得分:0)
如果您碰巧有其他设备,可以使用它创建热点并禁止移动网络互联网。测试设备将连接到热点,但由于缺少互联网,将无法到达任何地方。至于那里的连接,我认为它比重启路由器更快。但是,你必须有另一种装置来实现这一点......否则我不知道,我也想知道一个真正的答案。
答案 2 :(得分:0)
尝试通过android.os.Handler传递所有网络请求(我也使用db事务)。使用Runnables(更好地实现自己的Runnable类)来实现要执行的操作(在Runnable类中添加回调,日志记录和其他逻辑)。通过这种方式,您可以轻松地在Runnable类中注册侦听器,以执行您感兴趣的睡眠或失败。
以下是我项目中的一些代码。 M_ClientRunnable类实现Runnable,并具有注册" cancellators",失败侦听器和成功侦听器的其他方法。
class LooperThread extends Thread {
public Handler mHandler;
public LooperThread() {
super();
start();
}
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
getLogger().info(TAG, msg.toString());
}
};
Looper.loop();
}
public boolean post(M_ClientRunnable runnable) {
if(!isAlive()) {
start();
}
if (mHandler!=null) {
return mHandler.post(runnable);
} else {
return false;
}
}
};
private LooperThread looper = new LooperThread();
@Override
public boolean post(M_ClientRunnable runnable) {
return looper.post(runnable);
}
答案 3 :(得分:0)
我还没有真正的解决方案,但我找到了该任务的解决方法。我正在使用MikroTik路由器,其防火墙过滤器允许我在运行中禁用特定IP地址的互联网访问:
6 X chain=forward action=drop protocol=tcp dst-address=192.168.1.20
in-interface=Internet(modem)