簡體   English   中英

沒有互聯網時,Android 應用程序打開並崩潰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM