java - doInBackground 完成后 AsyncTask 不更新 UI

标签 java android android-asynctask

我正在尝试制作一个简单的应用程序来查找 WiFi 网络并连接到它们。我目前在更新 UI 时遇到问题。

如果有一些建议就太好了。感谢您抽出时间。

class UiUpdater extends AsyncTask<Void, Void, List<ScanResult>> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        TextView searching = (TextView) findViewById(R.id.searching);
        searching.setText("Currently searching...");
    }

    @Override
    protected List<ScanResult> doInBackground(Void... params) {
        WifiManager manager = (WifiManager) Client.this.getSystemService(Context.WIFI_SERVICE);

        if (!manager.isWifiEnabled())
            manager.setWifiEnabled(true);

        return manager.getScanResults();
    }

    @Override
    protected void onPostExecute(List<ScanResult> items) {
        super.onPostExecute(items);

        ArrayList<Items> wifi = new ArrayList<>();

        for (ScanResult s : items)
            wifi.add(new Items(s.SSID, s.capabilities));

        ///TextView searching = (TextView) findViewById(R.id.searching);
        ///searching.setText("");

        ListView list = (ListView) findViewById(R.id.list);
        Explorer adapter = new Explorer(Client.this, R.layout.listview_item_row, wifi);

        list.setAdapter(adapter);

        clickListener(list, wifi);
    }

}

最佳答案

请使用Toast消息或logcat或断点来检查onPost执行是否被调用

关于java - doInBackground 完成后 AsyncTask 不更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623957/

相关文章:

java - 显示启动画面时如何在后台加载 webview 中的 url?

java - AsyncTask 的 publishProgress 方法是异步的吗?

java - Java 中 ArrayList 扑克游戏的比较

java - JavaFX 2.2 : how to bind String to Integer?

android - AsyncTask 完成执行后 ExpandableListView 未更新

java - 如何在带有格式参数的字符串中使用 html 样式?

java - Android AsyncTask使用打开FileOutputStream

java - 使用 spring 表达式语言 (SpEL) 更新集合中的属性

java - 如何在java中加入一个线程与另一个线程?

android - 将menudrawer(外部库)添加到Android Studio 0.5.2