Flutter 前后台切换监听

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'package:background_fetch/background_fetch.dart';

void main() {
  // Enable integration testing with the Flutter Driver extension.
  // See https://flutter.io/testing/ for more info.
  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp>
    with WidgetsBindingObserver{
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    print("--" + state.toString());
    switch (state) {
      case AppLifecycleState.inactive: // 处于这种状态的应用程序应该假设它们可能在任何时候暂停。
        break;
      case AppLifecycleState.resumed:// 应用程序可见,前台
        break;
      case AppLifecycleState.paused: // 应用程序不可见,后台
        break;
      case AppLifecycleState.suspending: // 申请将暂时暂停
        break;
    }
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
            title: const Text('前后台测试')
        ),
        body: Container(
          color: Colors.black,
          child: Text('前后台测试'),
        ),
      ),
    );
  }
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flutter后台交互的实现方法有以下几种: 1. 使用http库进行网络请求:Flutter中有多个http库可供选择,如Dio、http、flutter_http等。开发者可以利用这些库发送HTTP请求到后台服务器,获取响应数据并进行处理。在台,开发者可以使用这些库发送post、get等请求,后台收到请求后,进行处理并返回相应的结果。 2. 使用WebSocket进行实时通信:WebSocket是一种在单个TCP连接上进行全双工通信的协议,它可以在后台之间建立持久连接,实现实时通信。开发者可以在Flutter中使用web_socket库建立WebSocket连接,台可以通过WebSocket发送数据到后台服务器,并通过监听收到后台的实时响应和通知。 3. 使用平台通道进行原生方法调用:Flutter提供了Platform Channel机制,开发者可以通过与原生平台(如Android和iOS)进行通信,调用平台上的原生代码实现后台交互。开发者可以在Flutter中通过MethodChannel、EventChannel等通道发送方法调用请求和接收平台传递过来的数据。 4. 使用第三方插件或SDK:有些后台服务提供商提供了与Flutter集成的插件或SDK,开发者可以直接使用这些插件或SDK与后台进行交互。比如Firebase提供了Firebase SDK,可以用于Flutter应用与Firebase后台进行数据交互、推送通知等。 5. 使用其他网络协议:根据具体需求,还可以使用其他网络协议进行后台交互,比如使用TCP、UDP等协议。开发者可以根据项目的实际需求选择合适的网络协议进行后台交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值