Android以太网连接了Asynctask上的imageView

时间:2016-03-03 02:07:56

标签: android android-asynctask

我取决于当前的网络状态, 改变形象。

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);
    }
}

1 个答案:

答案 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);