我正在设计一个应用程序,只要应用程序位于前台,该应用程序就会定期向专用服务器发送状态.
在我通过网络搜索时,我看到了一些不同的方法,并想知道这样做的最佳方法是什么.
安排服务器调用的最佳方法是什么?
我看到的选项是:
计时器.
服务.
带AlarmManager的 BroadcastReciever .
你怎么看?
编辑:
我需要这个的原因是一个基于聊天的应用程序,它将所有用户操作发送到远程服务器.
即用户正在键入消息,用户正在阅读消息,用户在线,用户在线等.
这意味着每隔一段时间,我需要向服务器发送我正在做的事情,因为我和其他人打开聊天室,他们需要知道我在做什么.
与whatsapp消息反馈机制类似:
编辑#2:
现在几乎总是通过JobScheduler
API(或FirebaseJobDispatcher
更低的API)安排重复任务,以防止电池耗尽问题,可以在Android培训的vitals部分阅读
我想听sql server数据库知道android中是否有数据更改所以我想每5秒向web服务发送一次请求以了解新的数据值.我该怎么做?你能举个例子吗?
我有一个名为myAsync的asynctask,它执行一些网络操作(从服务器获取数据,并解析json).
一旦活动运行,我也会创建一个处理程序.
我也有一个runnable,我运行asynctask.我使用runnable的原因是因为我将在Handler的postdelayed方法中使用它,因为我希望每1分钟重复一次.
Runnable runnable = new Runnable()
{
public void run()
{
new myAsync ().execute();
}
};
Run Code Online (Sandbox Code Playgroud)
然后我在onResume中使用上面的runnable;
@Override
protected void onResume()
{
super.onResume();
handler.postDelayed(runnable, 60000);
}
Run Code Online (Sandbox Code Playgroud)
每当我离开活动时,我都希望支票停止,所以我打电话给,
handler.removeCallbacks(runnable);
Run Code Online (Sandbox Code Playgroud)
然而,asynctask继续不停地运行.我该怎么办 ?