[英]Android app opens and crashes when there is no internet
應用程序在連接到互聯網時打開並正常工作,但當沒有互聯網時,它會立即打開並崩潰。 我有權限。 但我得到的錯誤是“MainActivity(服務器)'~頻道不可恢復地損壞,將被處理!”
class MainActivity : AppCompatActivity() {
private lateinit var viewModel: MainViewModel
lateinit var networkHelper: NetworkHelper
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
supportActionBar?.title = TITLE
setContentView(R.layout.activity_main)
viewModel = ViewModelProviders.of(this, MainViewModelFactory(application))
.get(MainViewModel::class.java)
networkHelper = NetworkHelper(this)
loadData()
}
private fun loadData() {
if (networkHelper.isNetworkConnected()) {
load_data.setOnClickListener {
viewModel.tenthChar.observe(this, Observer {
it?.let { char_data_view.text = it }
})
viewModel.everyTenthChar.observe(this, Observer {
it?.let { everytenthchar_data_view.text = it }
})
viewModel.wordsCount.observe(this, Observer {
it?.let { wordcount_data_view.text = it }
})
}
} else {
Toast.makeText(this, R.string.network_connection_error, Toast.LENGTH_SHORT).show()
}
}
}
您可以使用此功能檢查互聯網可用性。
public boolean isInternetAvailable(Context context) {
boolean isAvailable;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
isAvailable = cm.getActiveNetworkInfo() != null;
return isAvailable;
}
使用示例:
if (isInternetAvailiable(context)) {
//network request here
} else {
//toast no internet connection
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.