相关疑难解决方法(0)

安排Android中的重复任务

我正在设计一个应用程序,只要应用程序位于前台,该应用程序就会定期向专用服务器发送状态.

在我通过网络搜索时,我看到了一些不同的方法,并想知道这样做的最佳方法是什么.

安排服务器调用的最佳方法是什么?

我看到的选项是:

  1. 计时器.

  2. ScheduledThreadPoolExecutor.

  3. 服务.

  4. AlarmManager的 BroadcastReciever .

你怎么看?

编辑:
我需要这个的原因是一个基于聊天的应用程序,它将所有用户操作发送到远程服务器.
即用户正在键入消息,用户正在阅读消息,用户在线,用户在线等.

这意味着每隔一段时间,我需要向服务器发送我正在做的事情,因为我和其他人打开聊天室,他们需要知道我在做什么.

与whatsapp消息反馈机制类似: 消息看起来交付

编辑#2:
现在几乎总是通过JobSchedulerAPI(或FirebaseJobDispatcher更低的API)安排重复任务,以防止电池耗尽问题,可以在Android培训的vitals部分阅读

android scheduled-tasks

116
推荐指数
3
解决办法
10万
查看次数

每5秒向Web服务发送一次请求

我想听sql server数据库知道android中是否有数据更改所以我想每5秒向web服务发送一次请求以了解新的数据值.我该怎么做?你能举个例子吗?

android

7
推荐指数
1
解决办法
1万
查看次数

调用removeCallbacks后,runnable中的asynctask不会停止

我有一个名为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继续不停地运行.我该怎么办 ?

android android-asynctask android-handler

0
推荐指数
1
解决办法
1489
查看次数