android用定时器检查互联网连接
我尝试用定时器检查互联网连接。我想检查连接,例如每5秒。我写了一些代码,但我有错误,这是我的源代码android用定时器检查互联网连接,android,broadcastreceiver,android-broadcast,internet-connection,Android,Broadcastreceiver,Android Broadcast,Internet Connection,我尝试用定时器检查互联网连接。我想检查连接,例如每5秒。我写了一些代码,但我有错误,这是我的源代码 public class BroadCastSampleActivity extends Activity { TimerTask mTimerTask; Timer mTimer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class BroadCastSampleActivity extends Activity {
TimerTask mTimerTask;
Timer mTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTimerTask = new TimerTask() {
@Override
public void run() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
Toast.makeText(getApplicationContext(), "net Started",
Toast.LENGTH_LONG).show();
}
}
};
mTimer = new Timer();
mTimer.scheduleAtFixedRate(mTimerTask, 1000, 5000);
}
}
这是我的日志错误
我做错了什么?如果有人知道答案,请帮助我
附笔
我想检查互联网连接,例如Facebook,我不知道我的解决方案(我是说定时器)是更好的方法。你不能从非UI线程调用toast。所以,handler会帮你的。若您将在生产代码中删除Toast,则错误将自行消失。这里更多的是处理程序的解决方法
Handler handler = new Handler();
mTimerTask = new TimerTask() {
@Override
public void run() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "net Started",
Toast.LENGTH_LONG).show();
}
});
}
}
};
替换
Toast.makeText(getApplicationContext(), "net Started", Toast.LENGTH_LONG).show();
与
你不需要时间…如果你添加时间来比较manualey,那么应用程序会因为时间而工作变慢,所以没有时间去做…没有一个开发者想让应用程序slo工作,而你是一个正在做的使应用程序工作变慢的人…manualey添加时间限制。。。。
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "net Started", Toast.LENGTH_LONG).show();
}
});