在将文件推送到数据库之前,我需要使用代码来检查是否可以访问Internet。 这是我正在使用的代码。如果我有互联网连接,它就可以正常工作,但如果没有,它会停滞6或7秒钟
<script type="text/javascript">
//Width and height
var w = 500;
var h = 100;
var barPadding = 1;
var rowConverter = function(d) {
return {
category: d.category,
number: parseFloat(d.number)
};
}
var dataset;
d3.csv("barcharttest.csv", rowConverter).then (function(data) {
console.log(data);
dataset=data;
});
//Create SVG element
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", function(d, i) {
return i * (w / dataset.number.length);
})
.attr("y", function(d) {
return h - (d.number * 4);
})
.attr("width", w / dataset.length - barPadding)
.attr("height", function(d) {
return d.number * 4;
})
.attr("fill", "teal");
</script>
</body>
</html>
我希望它将文件(逐个文件)推送到数据库,并且我想每次都检查Internet是否正常工作
答案 0 :(得分:2)
要检查用户是否已连接到Internet,请使用此功能。
public boolean hasInternetConnection() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return manager.getActiveNetworkInfo() != null && manager.getActiveNetworkInfo().isConnected();
}
您的屏幕冻结,因为您在主线程上执行了长时间运行的任务(上传文件),这可能导致您的应用无法响应。您必须通过使用AsyncTask,RxJava或Coroutines(Kotlin)将操作移出主线程。 See this
答案 1 :(得分:-1)
Handler hander = new Handler(this);
handler.postDelayed(new Runnable() {
@Override
public void run() {
//do what you want
},2000L);