我取决于当前的网络状态, 改变形象。
WI-FI,以太网,无法联网。
我想要实现Asynctask。 但我不知道如何实施。
此代码 当以太网连接时。
感谢。
public class EthernetImage extends AsyncTask<ImageView, Void, ImageView> {
ImageView ethernet;
@Override
protected void onPreExecute() {
super.onPreExecute();
ethernet = (ImageView) findViewById(R.id.EthernetConnected);
}
@Override
protected ImageView doInBackground(Void... params) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
int m_iNetworkType = (activeNetwork == null) ? -1 : activeNetwork.getType();
if (m_iNetworkType == cm.TYPE_WIFI) {
ethernet.setVisibility(View.INVISIBLE);
} else if (m_iNetworkType == cm.TYPE_ETHERNET) {
ethernet.setVisibility(View.VISIBLE);
} else {
ethernet.setVisibility(View.INVISIBLE);
}
return ethernet;
}
@Override
protected void onPostExecute(ImageView result) {
super.onPostExecute(result);
if (result != null);
ethernet.setImageResource(R.drawable.ethernetimage);
}
}
答案 0 :(得分:0)
将AsyncTask<Void, Void, String>
的定义更改为protected String doInBackground(Void... params) {
if (m_iNetworkType == cm.TYPE_WIFI) {
return "wifi";
} else if (m_iNetworkType == cm.TYPE_ETHERNET) {
return "ethernet";
} else {
return null;
}
}
并相应地更改方法
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if (result != null) {
if("ethernet".equals(result)) {
ethernet.setImageResource(R.drawable.ethernetimage);
} else if("wifi".equals(result)) {
ethernet.setVisibility(View.INVISIBLE);
}
} else {
ethernet.setVisibility(View.INVISIBLE);
}
}
并检查
中的条件PhantomJSDriver driver = new PhantomJSDriver();
String script = <...Some script...page.injectJs('example.js').....>;
Object result = driver.executePhantomJS(script);