1. <div id="f8mbs"></div>
        您好,歡迎來到源碼搜藏網!分享精神,快樂你我!
        [加入VIP] 設為首頁 | 收藏本站 | 網站地圖 | Sitemap | TAG標簽
      2. 首 頁
      3. 在線工具
      4. jquery手冊
      5. 當前位置:首頁 > 安卓源碼 > 技術博客 >

        如何在Android中以編程方式在運行時注冊系統廣播接收器

        時間:2018-08-09 15:38 來源:互聯網 作者:源碼搜藏 瀏覽:收藏 挑錯 推薦 打印

        問題 - 在定位API 24+時注冊連接更改 并非所有Android廣播都是平等創建的,并且在所有情況下都無法在清單中創建它們。 由于Google對針對N(API 24)的應用所做的更改,您必須在運行時配置一些內容。 從 文檔中 :針對Android 7.0(API級別24)及更高版本的應

        問題 - 在定位API 24+時注冊連接更改

        并非所有Android廣播都是平等創建的,并且在所有情況下都無法在清單中創建它們。由于Google對針對N(API 24)的應用所做的更改,您必須在運行時配置一些內容。

        文檔中:針對Android 7.0(API級別24)及更高版本的應用程序CONNECTIVITY_ACTION如果在清單中聲明其廣播接收器,則不會接收廣播。

        解決方案

        文檔并不清楚如何處理這個問題,因此這里的代碼允許您的應用在定位N或更高版本后仍然接收連接更改廣播:

        public void onCreate() {
            ...
            //Change 'YourConnectionChangedBroadcastReceiver' 
            //to the class defined to handle the broadcast in your app
            registerReceiver(new YourConnectionChangedBroadcastReceiver(), 
            new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
            ...
        }

        我還建議從AndroidManifest.xml中刪除聲明,就好像你把它留在那里一樣,它實際上會創建你的廣播接收器的多個實例。

        <receiver android:name="YourConnectionChangedBroadcastReceiver">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
        </receiver>

        以編程方式注冊可以解鎖接收器以供您的應用程序使用(包括CONNECTIVITY_ACTION清單中的那些),這就是它的全部內容。您可以保存已注冊的接收器實例,并在不再需要時注銷它,但是,如果它持續應用程序的整個生命周期,則不需要這樣做。

        如何在Android中以編程方式在運行時注冊系統廣播接收器轉載http://www.rhcg.tw/appboke/38813.html
        標簽:網站源碼
        辽宁十一选五单双