最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

flutter監(jiān)聽(tīng)app進(jìn)入前后臺(tái)狀態(tài)的實(shí)現(xiàn)

 更新時(shí)間:2022年04月18日 09:28:02   作者:GY-93  
在開(kāi)發(fā)app的過(guò)程中,我們經(jīng)常需要知道app處于前后臺(tái)的狀態(tài),本文主要介紹了flutter監(jiān)聽(tīng)app進(jìn)入前后臺(tái)狀態(tài)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在開(kāi)發(fā)app的過(guò)程中,我們經(jīng)常需要根據(jù)app的前后臺(tái)的狀態(tài),做一些事情,那么我們?cè)趂lutter中是如何實(shí)現(xiàn)這一監(jiān)聽(tīng)的?

flutter給我們提供了WidgetsBindingObserver來(lái)進(jìn)行一些狀態(tài)的判斷,但是判斷前后臺(tái)的狀態(tài)只是該API種其中一種功能,對(duì)于WidgetsBindingObserver需要注意兩點(diǎn)

  • 最好是先進(jìn)入而且不會(huì)銷毀的頁(yè)面, 這可以判斷整個(gè)程序的前后臺(tái)狀態(tài)(例如:main。dart類中)
  • WidgetsBindingObserver需要被寫在MateialApp或其它主題包裹的地方

1. 監(jiān)聽(tīng)app進(jìn)入前后臺(tái)狀態(tài) 示例代碼:

//1.第一步需要混入 WidgetsBindingObserver類, 里面的一些方法提供了程序狀態(tài)的一些監(jiān)聽(tīng),我們可以重寫方法來(lái)實(shí)現(xiàn)我們的邏輯
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
  @override
  Widget build(BuildContext context) {

    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(color: Colors.orange,)
    );
  }

  //實(shí)現(xiàn)監(jiān)聽(tīng)flutter中App的一些狀態(tài), 比如 進(jìn)入前后臺(tái)
  @override
  void initState() {
    super.initState();
    //2.頁(yè)面初始化的時(shí)候,添加一個(gè)狀態(tài)的監(jiān)聽(tīng)者
    WidgetsBinding.instance?.addObserver(this);
  }

  @override
  void dispose() {
    super.dispose();
    //3. 頁(yè)面銷毀時(shí),移出監(jiān)聽(tīng)者
    WidgetsBinding.instance?.removeObserver(this);
  }

  //一些狀態(tài)改變監(jiān)聽(tīng)方法

  //監(jiān)聽(tīng)程序進(jìn)入前后臺(tái)的狀態(tài)改變的方法
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    // TODO: implement didChangeAppLifecycleState
    super.didChangeAppLifecycleState(state);
    switch (state) {
    //進(jìn)入應(yīng)用時(shí)候不會(huì)觸發(fā)該狀態(tài) 應(yīng)用程序處于可見(jiàn)狀態(tài),并且可以響應(yīng)用戶的輸入事件。它相當(dāng)于 Android 中Activity的onResume
      case AppLifecycleState.resumed:
        print("應(yīng)用進(jìn)入前臺(tái)======");
        break;
    //應(yīng)用狀態(tài)處于閑置狀態(tài),并且沒(méi)有用戶的輸入事件,
    // 注意:這個(gè)狀態(tài)切換到 前后臺(tái) 會(huì)觸發(fā),所以流程應(yīng)該是先凍結(jié)窗口,然后停止UI
      case AppLifecycleState.inactive:
        print("應(yīng)用處于閑置狀態(tài),這種狀態(tài)的應(yīng)用應(yīng)該假設(shè)他們可能在任何時(shí)候暫停 切換到后臺(tái)會(huì)觸發(fā)======");
        break;
    //當(dāng)前頁(yè)面即將退出
      case AppLifecycleState.detached:
        print("當(dāng)前頁(yè)面即將退出======");
        break;
    // 應(yīng)用程序處于不可見(jiàn)狀態(tài)
      case AppLifecycleState.paused:
        print("應(yīng)用處于不可見(jiàn)狀態(tài) 后臺(tái)======");
        break;
    }
  } 
}

執(zhí)行結(jié)果:

在這里插入圖片描述

2.其它狀態(tài)監(jiān)聽(tīng)

//當(dāng)前系統(tǒng)改變了一些訪問(wèn)性活動(dòng)的回調(diào)
  @override
  void didChangeAccessibilityFeatures() {
    super.didChangeAccessibilityFeatures();
  }

  //低內(nèi)存回調(diào)
  @override
  void didHaveMemoryPressure() {
    super.didHaveMemoryPressure();
  }

  //用戶本地設(shè)置變化時(shí)調(diào)用,如系統(tǒng)語(yǔ)言改變
  @override
  void didChangeLocales(List<Locale>? locales) {
    super.didChangeLocales(locales);
  }

  //應(yīng)用尺寸改變回調(diào),例如旋轉(zhuǎn)
  @override
  void didChangeMetrics() {
    super.didChangeMetrics();
  }

  @override
  Future<bool> didPopRoute() {
    //return super.didPopRoute();
    print('YM--------didPopRoute');//頁(yè)面彈出
    return Future.value(false);//true為攔截,false不攔截
  }

  @override
  Future<bool> didPushRoute(String route) {
    //return super.didPushRoute(route);
    print('YM--------PushRoute');  //攔截push
    return Future.value(false);
  }

  //平臺(tái)主題改變時(shí)回調(diào)
  @override
  void didChangePlatformBrightness() {

    super.didChangePlatformBrightness();
  }

到此這篇關(guān)于flutter監(jiān)聽(tīng)app進(jìn)入前后臺(tái)狀態(tài)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)flutter監(jiān)聽(tīng)app內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Input系統(tǒng)之InputReader處理合成事件詳解

    Input系統(tǒng)之InputReader處理合成事件詳解

    這篇文章主要為大家介紹了Input系統(tǒng)之InputReader處理合成事件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 安卓Android Context類實(shí)例詳解

    安卓Android Context類實(shí)例詳解

    在開(kāi)發(fā)Android的過(guò)程中,總是能遇見(jiàn)Context類或者它的實(shí)例.Context類的實(shí)例經(jīng)常被用來(lái)提供“應(yīng)用程序”的引用,下面舉例說(shuō)明Contex類實(shí)例詳解
    2016-07-07
  • Android使用多線程實(shí)現(xiàn)斷點(diǎn)下載

    Android使用多線程實(shí)現(xiàn)斷點(diǎn)下載

    這篇文章主要介紹了Android使用多線程實(shí)現(xiàn)斷點(diǎn)下載,多線程下載是加快下載速度的一種方式,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 新版Android studio導(dǎo)入微信支付和支付寶官方Demo問(wèn)題解決大全

    新版Android studio導(dǎo)入微信支付和支付寶官方Demo問(wèn)題解決大全

    這篇文章主要為大家詳細(xì)介紹了新版Android studio導(dǎo)入微信支付和支付寶官方Demo問(wèn)題的解決大全,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android編程四大組件之BroadcastReceiver(廣播接收者)用法實(shí)例

    Android編程四大組件之BroadcastReceiver(廣播接收者)用法實(shí)例

    這篇文章主要介紹了Android編程四大組件之BroadcastReceiver(廣播接收者)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了BroadcastReceiver的功能.定義,用法及相關(guān)使用技巧,需要的朋友可以參考下
    2016-01-01
  • Android通過(guò)Movie展示Gif格式圖片

    Android通過(guò)Movie展示Gif格式圖片

    這篇文章主要介紹了Android通過(guò)Movie展示Gif格式圖片的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • android利用消息機(jī)制獲取網(wǎng)絡(luò)圖片

    android利用消息機(jī)制獲取網(wǎng)絡(luò)圖片

    這篇文章主要為大家詳細(xì)介紹了android利用消息機(jī)制獲取網(wǎng)絡(luò)圖片的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android中自定義View的實(shí)現(xiàn)方式總結(jié)大全

    Android中自定義View的實(shí)現(xiàn)方式總結(jié)大全

    這篇文章主要總結(jié)了Android中自定義View的實(shí)現(xiàn)方式的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們學(xué)習(xí)或者使用自定義View具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • Flutter組件實(shí)現(xiàn)進(jìn)度指示器

    Flutter組件實(shí)現(xiàn)進(jìn)度指示器

    這篇文章主要為大家詳細(xì)介紹了Flutter組件實(shí)現(xiàn)進(jìn)度指示器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 詳解Android 硬布局item的高級(jí)寫法

    詳解Android 硬布局item的高級(jí)寫法

    這篇文章主要介紹了詳解Android 硬布局item的高級(jí)寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論

丹凤县| 彩票| 遂宁市| 称多县| 韶山市| 温宿县| 汶川县| 黄梅县| 五河县| 长治市| 牡丹江市| 高陵县| 清丰县| 汾阳市| 朝阳市| 湖南省| 明星| 阳城县| 商河县| 泽州县| 吉水县| 诸城市| 舞阳县| 梁山县| 双牌县| 隆安县| 璧山县| 万安县| 吉木萨尔县| 金门县| 石家庄市| 金沙县| 凭祥市| 上杭县| 安康市| 黄梅县| 图木舒克市| 吉林市| 揭西县| 永和县| 沂南县|