Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-让应用程序向服务器发送心跳信号_Java_Android_Http_Android Service - Fatal编程技术网

Java Android-让应用程序向服务器发送心跳信号

Java Android-让应用程序向服务器发送心跳信号,java,android,http,android-service,Java,Android,Http,Android Service,我需要实现一个常规的心跳 heartbeat本身是对我的服务器的一个简单的HTTP-GET调用 问题是,只要我的应用程序打开,我就想发送它。当我关闭应用程序时,发送应该停止 我读了一些关于和的文章,但在浏览我的应用程序活动时,我如何调用/停止它们 看起来不错,但还是一样的问题: final Handler handler = new Handler(); Runnable runable = new Runnable() { @Override public void run() {

我需要实现一个常规的
心跳

heartbeat
本身是对我的服务器的一个简单的
HTTP-GET
调用

问题是,只要我的应用程序打开,我就想发送它。当我关闭应用程序时,发送应该停止

我读了一些关于和的文章,但在浏览我的应用程序活动时,我如何调用/停止它们

看起来不错,但还是一样的问题:

final Handler handler = new Handler();
Runnable runable = new Runnable() {

@Override
public void run() {
    try{
        //do your code here
        //also call the same runnable 
        handler.postDelayed(this, 1000);
    }
    catch (Exception e) {
        // TODO: handle exception
    }
    finally{
        //also call the same runnable 
        handler.postDelayed(this, 1000);
    }
}
};
handler.postDelayed(runable, 1000); 
有人能发一个好的例子或链接吗

谢谢

问题是,只要我的应用程序打开,我就想发送它。当我关门的时候 发送的应用程序应停止

在安卓系统中比在iOS系统中要难一点,但让我们这样做: 在Android中,当应用程序进入后台或被终止时,应用程序级别没有回调。例如,您应该在每个活动顶部处理方法,而不是thin。查看活动生命周期:

或无记忆法。注: 当某个活动不再可见时,可能是因为您的应用程序已转到后台、已关闭或其他活动可见。您必须决定哪种情况是正确的,并使用HTTP Get/Post,或者在需要时停止它


是一个示例代码,其中包含通过HTTP发送数据的异步任务。

我使用与代码类似的
处理程序实现了一个简单的超时。当一个
活动
调用
onPause
触发10秒延迟的超时时,当一个
活动
调用
onResume
调用
RemoveUnnamable(…)
取消该调用,如果超时代码触发,您知道用户已经离开了您的应用程序(这就是10秒超时的原因,如果有新的
活动,则为其提供启动时间)


您可以在超时代码中添加一些内容来终止心跳。例如,取消心跳
可运行

您可以始终尝试线程…或异步任务…或服务…只需使用TimerTask,它每隔一秒钟发送一次此命令,然后覆盖方法onStop()和onDestroy()并删除你的TimerTask。我更新了我的问题,希望能减少恶意留言的风暴:)一旦第二个HTTP请求将耗尽电池。重新考虑这种设计。@SevaAlekseyev感谢您的输入,但它不适用于手机,因此没有电池:)