我正在使用一个服务通过套接字将自己连接到一个服务器。我想要实现的是:我需要不断地检查手机是否连接到互联网上,如果是的话,就建立了与服务器的连接,并且可以进行查询。如果不是,插座就会关闭。我的问题就在这里:我的一些查询应该只做一次,其他的每两秒钟做一次,最后一次应该每X分钟做一次。
应该只调用一次的查询不是问题,但是我不知道如何处理另外两个。到目前为止,我在服务的onStartCommand中调用一个线程。每两秒通过定时器重复一次呼叫。这将处理第一种类型的查询,但如果我在ConnectSocket线程内部调用另一个线程来处理需要每X分钟调用一次的查询,它将不再起作用。
如果能得到任何帮助,我将不胜感激!
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Thread thread = new Thread(new ConnectSocket());
thread.start();
}
});
}
}, 0, 2000);
return START_STICKY;
}
class ConnectSocket implements Runnable {
@Override
public void run() {
if (isConnectedToInternet()) {
if (socket == null || socket.isClosed()) {
try {
connectToServer();
} catch (IOException e) {
e.printStackTrace();
}
}
sendMessageConnected();
Thread pullThread = new Thread(new PullCowData());
pullThread.start();
} else {
if (!socket.isClosed()) {
closeConnection();
}
}
}
}
我想看看WorkManager,它是专门为在Android上调度任务而设计的。
问题内容: 我想请一台我知道其IP的服务器将日期和时间发送给客户端。 如何用Java实现呢? 问题答案: 描述细节的文章:http : //www.informit.com/articles/article.aspx? p=26316&seqNum =3 客户端http://commons.apache.org/net/apidocs/org/apache/commons/net/ntp/NTPU
我正在尝试将大量文件从服务器A传输到服务器B。我已经在A上设置了FTP(使用FileZilla)。 当我尝试从PC连接到A时,它工作正常。但当我尝试从B连接到A时,它不起作用。FTP用户登录,但目录列表命令一直处于停滞状态。 防火墙端口21已打开。我尝试了多台服务器、不同的FTP客户端,但没有用。除了FileZilla,我还尝试了内置FTP服务的ISS,得到了相同的结果。 使用相同凭据从本地完美连
我必须调用RESTendpoint(使用Java)来检索响应。这些配置包括 totalTimeAvailableToCheck=15秒,NoOfAttempts=3,intervalInAttempts=3秒。 因此,假设每隔3秒就会调用一个endpoint。如果我得到了所需的响应,那么完成执行,否则,每隔3秒继续尝试,接下来的3次尝试。主线程上所有这些的总等待时间不应超过15秒。因为resten
我尝试使用外部Web服务对pdf进行数字签名。此Web服务包含用户证书,用户可以使用他们的凭据和一次性密码生成的代码访问该证书。 旁注:web服务应该期望pdf摘要(哈希),但奇怪的是,它却接受整个文件。 无论如何,实现如下: pdf已成功签名,但使用Adobe Reader并检查签名字段时,似乎缺少可信时间戳,如图所示: 看起来,来自远程服务的响应是一个签名对象,我只需要将其嵌入到PDF文件中。
主要内容:编写时间客户端本教程中实现的协议是TIME协议。 它与先前的示例不同,时间服务器只发送包含位整数的消息,而不接收任何请求,并在消息发送后关闭连接。 在本示例中,您将学习如何构造和发送消息,以及在完成时关闭连接。 因为时间服务器将忽略任何接收到的数据,但是一旦建立连接就发送消息,所以我们不能使用方法。而是覆盖方法。 以下是代码的实现: 下面我们来看看上面代码的一些解释分析: 如上所述,当建立连接并准备好生成流量时
ap.getServerTime(CALLBACK) 获取当前服务器时间的毫秒数 CALLBACK 参数说明 名称 类型 描述 time Number 服务器时间的毫秒数 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <b