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感谢您的输入,但它不适用于手机,因此没有电池:)