首先在Activity裡,定義一個檢測網絡狀態的方法:
/**
* 對網絡連接狀態進行判斷
*
* @return true, 可用; false, 不可用
*/
private boolean isOpenNetwork() {
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connManager.getActiveNetworkInfo() != null) {
return connManager.getActiveNetworkInfo().isAvailable();
}
return false;
}
然後
/**
*網絡可用就調用下一步需要進行的方法, 網絡不可用則需設置
*/
private void initIntener() {
// 判斷網絡是否可用
if (isOpenNetwork() == true) {
// 網絡可用,則開始加載。
initPross();//這裡是我個人程序要進行網絡加載的方法,根據自己的程序而定,靈活運用。
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("沒有可用的網絡").setMessage("是否對網絡進行設置?");
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {
String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName("com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
MainActivity.this.startActivity(intent);
} catch (Exception e) {
// Log.w(TAG,
// "open network settings failed, please check...");
e.printStackTrace();
}
}
}).setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
//finish();//因為網絡不可用的狀態,也是不讓自己的程序結束運行, 這是根據個人需要設置。
Toast.makeText(MainActivity.this, "網絡異常,加載失敗!", Toast.LENGTH_SHORT).show();
initAll();//這裡是沒有網絡的時候,又不需要手動設置,則顯示出來的一個靜態頁面,根據個人需要。
}
}).show();
}
}
然後把initIntener();方法在Activity的初始化方法實現就行了,啟動Activity首先進行網絡檢測,再執行其他方法。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉標題欄
setContentView(R.layout.main);
//檢測網絡是否可用
initIntener();
}
最後需要在AndroidManifest.xml裡添加相關權限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
如有不對的地方,請大家多多指教。