在我的主要活动中,有一个互联网状态 TextView 。在那个 TextView 中,我想显示是否启用了互联网连接。我必须每 10 秒刷新一次状态。
我知道我必须在单独的线程中执行此操作,但我尝试了很多。我没有得到完美的解决方案。
public class MainActivity extends Activity {
ImageView imageView;
TextView internetStausTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
internetStausTextView = (TextView) findViewById(R.id.tv1);
new InternetChecker();
}
public class InternetChecker implements Runnable {
Thread t;
boolean internetStatus;
ConnectivityManager conMgr;
public InternetChecker() {
t = new Thread(this);
t.start();
conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
}
public void run() {
while (true) {
if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
internetStatus = true;
} else if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) {
internetStatus = false;
}
runOnUiThread(new Runnable() {
public void run() {
if (internetStatus)
internetStausTextView.setText("connected");
else
internetStausTextView.setText("Not connected.");
}
});
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
}
}
}
}
这是我的代码....但它正在影响应用程序的性能。
任何人都可以帮我将子类 InternetChecker 取出到一个单独的文件中。