首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为以后的工作安排任务

为以后的工作安排任务
EN

Stack Overflow用户
提问于 2018-10-09 14:53:16
回答 1查看 43关注 0票数 1

我所拥有的:

一个包含两个选项卡的应用程序,一个用于即将交付,另一个用于过去交付。我在一个SQLite数据库中获取即将交付的信息,其中有效性日期高于当前日期,对于过去的交付,反之亦然(更新两个列表的ui )。

我想要的:

每一次交付都有一个有效日期,如果一次交付超过了他的有效日期,我希望它在“过去交货”选项卡中。

更多信息:

  • 这两个选项卡添加了一个ViewPager,其中每个选项卡都包含一个带有RecyclerViewFragment
  • 这些交付是我自己添加的(通过一个FloatingActionButton),没有任何are服务。
  • SDK版本的范围为17至28。

在android (或java)中是否有一个实用程序类来实现这种工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-09 16:04:50

第1部分

如果在后台安排一个可以更新表等的作业是您想要的,下面是答案:

我的建议是使用EverNote的“Android-作业”库。这个库与'JobScheduler‘和'AlarmManager’都有相同的功能,但是AndroidJobs库将为您处理API版本问题,因此您只需配置任务何时执行即可。即。InternetAvailable =true,interval =5 min& mins = true等(这是伪代码,但类似于它们的api)

它们的api很容易使用,并且可以安排任务,而不必担心SDK版本和使用多个Android来做同样的事情。

以下是gitHub链接:https://github.com/evernote/android-job

PART2

每一次交付都有一个有效日期,如果一次交付超过了他的有效日期,我希望它在“过去交货”选项卡中。

如果您只想更新UI而不更改表中的任何内容,则不需要使用调度程序和警报管理器(或)完成预定任务。

您可以做的是在您的活动中有一个处理程序线程,它每5秒执行一次(您可以更改时间)。

在下面的代码中,带有选项卡的活动启动一个Handler任务,该任务运行5秒,在任务运行的时间内,它会告诉您的片段检查它的数据。因此,每个片段现在可以检查每5秒,如果他们拥有的数据是正确的,并重新绘制。

例:

代码语言:javascript
复制
import android.os.Handler;
MyActivity extends Activity {

  private UpcomingDeliverFragment UpcomingFragment;
  private PastDeliverFragment pastFragment;

  private Handler handler = new Handler()

  private Runnable runnable = new Runnable() {
    @Override
    public void run() {
            UpcomingFragment.checkDataSet();
            pastFragment.checkDataSet();
            startHandler(); // so the task runs again after 5 secs
    }
  };

  private onResume() {
   startHandler();
  }

  private onPause() {
   stopHandler(); // very important
  }


   private fun startHandler() {
      handler.postDelayed(runnable, 5000);
   }      

   private fun stopHandler() {
     handler.removeCallbacks(runnable);
   }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52723950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档