Flutter开发之——getX-GetxService(14)

一 概述

  • GetXService使用说明
  • 利用GetXService改写网络API示例项目
  • 参考及示例代码

二 GetXService

2.1 使用说明

  • GetXService用在runApp之前,用于启动App之前进行初始化工作
  • 可以分别定义APIService(网络)、DBService(数据库)、SharedPreferenceService(本地化存储)等
  • 在initServices中控制上述Service的执行顺序

2.2 如何使用GetXService(APIService)

class APIService extends GetxService{
  Future<APIService> init()async{
    Get.put(HomeProvider());
    return this;
  }
  HomeProvider getHomeProvider(){
    return Get.find<HomeProvider>();
  }
  @override
  void onInit() {
    // TODO: implement onInit
    print('APIService--onInit');
    super.onInit();
  }
  @override
  void onReady() {
    // TODO: implement onReady
    print('APIService--onReady');
    super.onReady();
  }
  @override
  void onClose() {
    // TODO: implement onClose
    print('APIService--onClose');
    super.onClose();
  }
}

说明:

  • 定义类APIService继承GetxService
  • init方法,将HomeProvider(GetConnect)进行初始化
  • 定义获取HomeProvider的方法,便于APIService获取
  • 生命周期相关的方法:onInit()、onReady()、onClose()

2.3 initServices

Future<void> initServices() async {
  print('starting services ...');
  await Get.putAsync(() => APIService().init());//API
  print('All services started...');
}

2.4 App中设置

Future<void> main() async{
  await initServices();
  runApp(GetMaterialApp(
      themeMode: ThemeMode.light,
      initialRoute: AppRoutes.main,
      getPages: AppPages.routes));
}

三 利用GetXService改写网络API示例项目

3.1 网络API获取

之前

HomeProvider userProvider=Get.find();
Response response= await userProvider.getArticle(0);
//绑定HomeProvider

现在

Response response= await Get.find<APIService>().getHomeProvider().getArticle(0);

3.2 效果图

四 参考

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值