欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中利用NetworkInfo判斷網(wǎng)絡(luò)狀態(tài)時出現(xiàn)空指針(NullPointerException)問題的解決方法

 更新時間:2016年11月30日 17:17:46   作者:愚睿_可樂  
這篇文章主要介紹了Android中利用NetworkInfo判斷網(wǎng)絡(luò)狀態(tài)時出現(xiàn)空指針(NullPointerException)問題的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

在Android中,很多人會用如下的方法判斷當(dāng)前網(wǎng)絡(luò)是否可用:

/** 
* 獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)(是否可用) 
*/ 
public static boolean isNetworkAvailable() { 
boolean isAalable = false; 
ConnectivityManager connManager = (ConnectivityManager) BaseApplication.getApplication().getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connManager != null && connManager.getActiveNetworkInfo() != null) { 
isAalable = connManager.getActiveNetworkInfo().isAvailable(); 
} 
return isAalable; 
}

但是,如果有異常記錄的話,有可能看到如下的異常信息:

很多人不理解,明明已經(jīng)判斷是否為空了,為什么還是會出現(xiàn)空指針異常?這種異常往往出現(xiàn)在網(wǎng)絡(luò)狀態(tài)極不穩(wěn)定的時候,下面先看正確的寫法:

/** 
* 獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)(是否可用) 
*/ 
public static boolean isNetworkAvailable() { 
ConnectivityManager connManager = (ConnectivityManager) BaseApplication.getApplication().getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connManager != null) { 
/** 
* 獲取網(wǎng)絡(luò)信息實(shí)體 
* 由于從系統(tǒng)服務(wù)中獲取數(shù)據(jù)屬于進(jìn)程間通信,基本類型外的數(shù)據(jù)必須實(shí)現(xiàn)Parcelable接口, 
* NetworkInfo實(shí)現(xiàn)了Parcelable,獲取到的activeNetInfo相當(dāng)于服務(wù)中網(wǎng)絡(luò)信息實(shí)體對象的一個副本(拷貝), 
* 所以,不管系統(tǒng)網(wǎng)絡(luò)服務(wù)中的實(shí)體對象是否置為了null,此處獲得的activeNetInfo均不會發(fā)生變化 
*/ 
NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo(); 
if (activeNetInfo != null) { 
return activeNetInfo.isAvailable(); 
} 
} 
return false; 
}

至于為什么改成這樣寫就可以了,代碼注釋中已經(jīng)說的很明白了,還不太理解的可以去看看進(jìn)程間通信(IPC)和Pacelable的知識。

以上所述是小編給大家介紹的Android中利用NetworkInfo判斷網(wǎng)絡(luò)狀態(tài)時出現(xiàn)空指針(NullPointerException)問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android自定義View實(shí)現(xiàn)標(biāo)簽流效果

    Android自定義View實(shí)現(xiàn)標(biāo)簽流效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)標(biāo)簽流效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Android Studio 4.0 新功能中的Live Layout Inspector詳解

    Android Studio 4.0 新功能中的Live Layout Inspector詳解

    這篇文章主要介紹了Android Studio 4.0 新功能中的Live Layout Inspector,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Android LayerDrawable超詳細(xì)講解

    Android LayerDrawable超詳細(xì)講解

    一個LayerDrawable是一個可以管理一組drawable對象的drawable。在LayerDrawable的drawable資源按照列表的順序繪制,所以列表的最后一個drawable繪制在最上層
    2022-11-11
  • 詳解OpenGL Shader抗鋸齒的實(shí)現(xiàn)

    詳解OpenGL Shader抗鋸齒的實(shí)現(xiàn)

    普通繪制圓形形狀時可以看到圖形邊緣會有明顯鋸齒現(xiàn)象并不像真實(shí)圓形形狀一樣圓潤邊緣平滑。本文將介紹如何通過自制函數(shù)實(shí)現(xiàn)抗鋸齒,需要的可以參考一下
    2022-02-02
  • 簡單介紹Android中Activity的四種啟動模式

    簡單介紹Android中Activity的四種啟動模式

    在Android中每個界面都是一個Activity,切換界面操作其實(shí)是多個不同Activity之間的實(shí)例化操作。本文給大家介紹Android中Activity的四種啟動模式,需要的朋友參考下吧
    2016-04-04
  • Android?SharedPreferences性能瓶頸解析

    Android?SharedPreferences性能瓶頸解析

    這篇文章主要為大家介紹了Android?SharedPreferences性能瓶頸解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android事件與手勢操作詳解

    Android事件與手勢操作詳解

    現(xiàn)在程序都是通過事件實(shí)現(xiàn)人機(jī)交互的。事件:用于對圖形界面的操作,有物理按鍵事件和觸摸屏事件兩大類。在Android組件中提供了事件處理的相關(guān)方法,如在View類中提供onTouchEvent()方法重寫觸摸屏事件,setOnTouchListener()方法為組件設(shè)置監(jiān)聽器來處理觸摸屏事件
    2022-12-12
  • Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解

    Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Android中通過RxJava進(jìn)行響應(yīng)式程序設(shè)計的入門指南

    Android中通過RxJava進(jìn)行響應(yīng)式程序設(shè)計的入門指南

    響應(yīng)式編程在Android中的運(yùn)用是非常犀利的,比如在異常處理和調(diào)度器方面,這里我們將從生命周期等方面來講解Android中通過RxJava進(jìn)行響應(yīng)式程序設(shè)計的入門指南:
    2016-06-06
  • 解析android res 運(yùn)行錯誤的問題

    解析android res 運(yùn)行錯誤的問題

    本篇文章是對android中res運(yùn)行錯誤的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論