洞察探讨小游戏SDK接入的最佳实践以及对企业跨平台开发的优势
1067
2022-11-01
Android启动任务调度框架,用于缩短app启动时间
Rocket
Android启动任务调度框架,用于缩短app启动时间
快速开始
STEP0
引入依赖,使用gradle
dependencies { implementation 'cn.hikyson.rocket:rocket-core:VERSION_NAME'}
STEP1
定义某一个任务:
public class TestTask1 extends LaunchTask { @NonNull @Override public String taskName() { //任务名称,默认使用类名 return "test1"; } @Override public void run() throws Throwable { //执行的任务 Thread.sleep(6000); } @NonNull @Override public List
任务的每个接口表示含义见注释。
STEP2
所有API均由Rocket类提供
注册任务有两种方式:
public synchronized Rocket from(Application application, final List
在应用assets目录下创建任务列表的xml格式文件,文件根节点为task-list,任务节点名为task,比如在assets下创建rocket文件夹,并在此创建task_list.xml文件,文件内容为:
STEP3
在application中开始Rocket:
Rocket.get().tailTask(new ITailTask() { @Nullable @Override public String taskName() { return TailTask.class.getSimpleName(); } @NonNull @Override public Executor runOn() { return cn.hikyson.rocket.util.Execs.io(); } @Override public void beforeWait() { } @Override public void beforeRun() { } @Override public void onTaskDone(TaskRecord taskRecord) { } }).tasksFinishCallback(new ITasksFinishCallback() { @Override public void onTasksFinished() { L.d("onTasksFinished."); } }) .timeoutHandler(10000, new ITimeoutHandler() { @Override public void onTimeout(List
STEP4
如果首页需要等待某几个必要任务执行完毕才能开始使用,可以使用public static void ensureTasks(String... taskNames)接口,这个接口后的代码会一直等待直到任务完成才能执行。
//页面依赖test2的任务@RocketDependency({"test2"})public class SecondActivity extends AbsActivity {}
详细说明
Rocket-Android启动任务调度框架
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~