国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

android 監(jiān)聽(tīng)app前后臺(tái)切換

這篇具有很好參考價(jià)值的文章主要介紹了android 監(jiān)聽(tīng)app前后臺(tái)切換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

需求是統(tǒng)計(jì)app使用時(shí)長(zhǎng),要求在按home鍵的時(shí)候也算一次完成的使用記錄。剛開(kāi)始打算采用監(jiān)聽(tīng)home鍵點(diǎn)擊,尋求的方法是監(jiān)聽(tīng)系統(tǒng)廣播。

   class InnerRecevier extends BroadcastReceiver {
      final String SYSTEM_DIALOG_REASON_KEY = "reason";
      final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
      final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";

      @Override
      public void onReceive(Context context, Intent intent){
         String action = intent.getAction();
         if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
            String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
            if (reason != null) {
               if (mListener != null){
                  if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)){
                     // 短按home鍵
                     mListener.onHomePressed();
                  }else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)){
                     // 長(zhǎng)按home鍵
                     mListener.onHomeLongPressed();
                  }
               }
            }
         }
      }

可以實(shí)現(xiàn)監(jiān)聽(tīng)home鍵被點(diǎn)擊,但有一個(gè)弊端就是點(diǎn)擊home鍵app切換到后臺(tái)后,在使用別的app點(diǎn)擊home鍵 自己的app還是會(huì)收到這個(gè)廣播,因?yàn)檫@是系統(tǒng)級(jí)的廣播,這里處理邏輯就比較麻煩,要寫(xiě)一些判斷等,還有另外一種可以直接監(jiān)聽(tīng)app切換前后臺(tái),采用下面這種方式能簡(jiǎn)單完美解決我的需求。

    private int activityAount = 0;//當(dāng)前Acitity個(gè)數(shù)

    private boolean inItOnlineTime= true;//是否重新計(jì)時(shí)app在線時(shí)間
    /**
     * Activity 生命周期監(jiān)聽(tīng),用于監(jiān)控app前后臺(tái)狀態(tài)切換
     */
    ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
        @Override
        public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        }

        @Override
        public void onActivityStarted(Activity activity) {
            activityAount++;
            if(inItOnlineTime){
               //app切換到前臺(tái)了,重新計(jì)時(shí)
                createAppOnlineTime();
                inItOnlineTime = false;
            }
        }

        @Override
        public void onActivityResumed(Activity activity) {
        }
        @Override
        public void onActivityPaused(Activity activity) {
        }

        @Override
        public void onActivityStopped(Activity activity) {
            activityAount--;
            if (activityAount == 0) {
                //app切換到后臺(tái)了,提交時(shí)間數(shù)據(jù)
                postAppOnlineTime();
                inItOnlineTime = true;
            }
        }

        @Override
        public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
        }
        @Override
        public void onActivityDestroyed(Activity activity) {
        }
    };
  	//注冊(cè)這個(gè)監(jiān)聽(tīng)
     registerActivityLifecycleCallbacks(activityLifecycleCallbacks);

把上面代碼寫(xiě)在Application中,在Application的onCreate的方法中注冊(cè)監(jiān)聽(tīng),在使用app的時(shí)候無(wú)論在任何頁(yè)面當(dāng)點(diǎn)擊home鍵的時(shí)候都會(huì)觸發(fā)監(jiān)聽(tīng),點(diǎn)擊返回鍵退出app 和menu鍵也會(huì)觸發(fā)app切換到后臺(tái)的監(jiān)聽(tīng)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-509294.html

到了這里,關(guān)于android 監(jiān)聽(tīng)app前后臺(tái)切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 關(guān)于單片機(jī)的前后臺(tái)系統(tǒng)

    關(guān)于單片機(jī)的前后臺(tái)系統(tǒng)

    單片機(jī)裸機(jī)系統(tǒng),通常又被稱為前后臺(tái)系統(tǒng)。 百度百科中,對(duì)前后臺(tái)系統(tǒng)有一段解釋: ?前后臺(tái)系統(tǒng),即計(jì)算機(jī)前后臺(tái)系統(tǒng),早期的嵌入式系統(tǒng)中沒(méi)有操作系統(tǒng)的概念,程序員編寫(xiě)嵌入式程序通常直接面對(duì)裸機(jī)及裸設(shè)備,在這種情況下,通常把嵌入式程序分成兩部分,即前

    2024年02月12日
    瀏覽(22)
  • 一個(gè)面向MCU的小型前后臺(tái)系統(tǒng)

    一個(gè)面向MCU的小型前后臺(tái)系統(tǒng)

    JxOS面向MCU的小型前后臺(tái)系統(tǒng),提供消息、事件等服務(wù),以及軟件定時(shí)器,低功耗管理,按鍵,led等常用功能模塊。 gitee倉(cāng)庫(kù)地址為(復(fù)制到瀏覽器打開(kāi)): 在此基礎(chǔ)上實(shí)現(xiàn)了基于433的簡(jiǎn)單無(wú)線網(wǎng)絡(luò)功能。 此項(xiàng)目的 設(shè)計(jì)思想 是:功能模塊與硬件高度解耦,提高代碼模塊的可

    2024年02月09日
    瀏覽(19)
  • 【jenkins部署】一文弄懂自動(dòng)打包部署(前后臺(tái))

    【jenkins部署】一文弄懂自動(dòng)打包部署(前后臺(tái))

    軟件開(kāi)發(fā)中,會(huì)分多個(gè)環(huán)境,開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境,軟件部署如果是純?nèi)斯ひ粋€(gè)個(gè)通過(guò)jar的方式, 會(huì)有如下問(wèn)題: 服務(wù)器過(guò)多,容易出錯(cuò) 修改配置,可能會(huì)存在未修改到位的情況 服務(wù)器部署權(quán)限一般只有開(kāi)發(fā)服務(wù)器人才有權(quán)限,涉及到服務(wù)器的安全

    2024年02月08日
    瀏覽(24)
  • 大文件分片上傳的實(shí)現(xiàn)【前后臺(tái)完整版】

    在一般的產(chǎn)品開(kāi)發(fā)過(guò)程中,大家多少會(huì)遇到上傳視頻功能的需求,往往我們采用的都是對(duì)視頻大小進(jìn)行限制等方法,來(lái)防止上傳請(qǐng)求超時(shí),導(dǎo)致上傳失敗。這時(shí)候可能將視頻分片上傳可以對(duì)你的項(xiàng)目有一個(gè)小小的體驗(yàn)優(yōu)化。 本片文章前端是vue,后臺(tái)基于PHP進(jìn)行的分片上傳,需

    2024年02月10日
    瀏覽(22)
  • centos配置nginx+node前后臺(tái)+mongodb

    centos 環(huán)境下安裝

    2024年02月11日
    瀏覽(23)
  • 【SpringMVC】統(tǒng)一異常處理 前后臺(tái)協(xié)議聯(lián)調(diào) 攔截器

    【SpringMVC】統(tǒng)一異常處理 前后臺(tái)協(xié)議聯(lián)調(diào) 攔截器

    1. 問(wèn)題描述 在講解這一部分知識(shí)點(diǎn)之前,我們先來(lái)演示個(gè)效果,修改BookController類的 getById 方法 重新啟動(dòng)運(yùn)行項(xiàng)目,使用PostMan發(fā)送請(qǐng)求,當(dāng)傳入的id為1,則會(huì)出現(xiàn)如下效果: 前端接收到這個(gè)信息后和之前我們約定的格式不一致,這個(gè)問(wèn)題該如何解決? 在解決問(wèn)題之前,我們

    2024年02月11日
    瀏覽(24)
  • 一套前后臺(tái)全部開(kāi)源的H5商城送給大家

    博主給大家推薦一套全部開(kāi)源的H5電商項(xiàng)目 waynboot-mall 。由博主在2020年開(kāi)發(fā)至今,已有三年之久。那時(shí)候網(wǎng)上很多的H5商城項(xiàng)目都是半開(kāi)源版本,要么沒(méi)有H5前端代碼,要么需要加群咨詢,屬實(shí)惡心。于是博主決定自己開(kāi)發(fā)一套完整的移動(dòng)端H5商城,包含一個(gè)管理后臺(tái)、一個(gè)前

    2024年02月02日
    瀏覽(24)
  • 前后臺(tái)傳遞參數(shù)中出現(xiàn)+、-、=、%、&、#、空格等字符的解決思路

    一、描述問(wèn)題 前后臺(tái)傳輸數(shù)據(jù)多樣化,可能會(huì)出現(xiàn)特殊字符的情況,比如傳遞的參數(shù)中含有+、空格、=、%等字符,遇到這樣的情況我們?cè)撊绾谓鉀Q呢? 二、問(wèn)題分析 前后臺(tái)特殊字符對(duì)其編碼,原因可能是這些特殊字符對(duì)于前后臺(tái)傳遞參數(shù)的時(shí)候,有其特殊的用途,比如url中

    2024年01月17日
    瀏覽(20)
  • 【SpringMVC】統(tǒng)一異常處理 前后臺(tái)協(xié)議聯(lián)調(diào) 攔截器(文末贈(zèng)書(shū))

    【SpringMVC】統(tǒng)一異常處理 前后臺(tái)協(xié)議聯(lián)調(diào) 攔截器(文末贈(zèng)書(shū))

    1. 問(wèn)題描述 在講解這一部分知識(shí)點(diǎn)之前,我們先來(lái)演示個(gè)效果,修改BookController類的 getById 方法 重新啟動(dòng)運(yùn)行項(xiàng)目,使用PostMan發(fā)送請(qǐng)求,當(dāng)傳入的id為1,則會(huì)出現(xiàn)如下效果: 前端接收到這個(gè)信息后和之前我們約定的格式不一致,這個(gè)問(wèn)題該如何解決? 在解決問(wèn)題之前,我們

    2024年02月09日
    瀏覽(27)
  • 基于springBoot + Vue電影售票系統(tǒng)分前后臺(tái)【完整源碼+數(shù)據(jù)庫(kù)】

    基于springBoot + Vue電影售票系統(tǒng)分前后臺(tái)【完整源碼+數(shù)據(jù)庫(kù)】

    本項(xiàng)目是一套基于springBoot + Vue的電影售票系統(tǒng),主要針對(duì)計(jì)算機(jī)相關(guān)專業(yè)的正在做bishe的學(xué)生和需要項(xiàng)目實(shí)戰(zhàn)練習(xí)的Java學(xué)習(xí)者。 包含:項(xiàng)目源碼、數(shù)據(jù)庫(kù)腳本等,該項(xiàng)目可以直接作為bishe使用。 項(xiàng)目都經(jīng)過(guò)嚴(yán)格調(diào)試,確??梢赃\(yùn)行! 后端:SpringBoot+Mysql+MyBatis+maven 前端:Vu

    2024年02月03日
    瀏覽(37)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包