相关疑难解决方法(0)

如何检查当前线程是否不是主线程

我需要检查运行某段代码的线程是否是主(UI)线程.我怎样才能做到这一点?

java multithreading android

369
推荐指数
6
解决办法
11万
查看次数

Android - 如何在runOnUiThread中将数据传递给Runnable?

我需要更新一些UI并使用UI线程在UI线程内完成.runOnUiThread
现在UI的数据来自另一个Thread,由data此处表示.

如何将数据传递给Runnable,以便它们可用于更新UI?Android似乎不允许直接使用数据.有一种优雅的方式来做到这一点?

public void OnNewSensorData(Data data) {

    runOnUiThread(new Runnable() {
        public void run() {
            //use data
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我的解决方案是private Data sensordata在runnable中创建一个fioeld ,并为其分配数据.如果原件Data data是最终的,这只有效.

public void OnNewSensorData(final Data data) {

    runOnUiThread(new Runnable() {
        private Data sensordata = data;
        public void run() {
            //use sensordata which is equal to data
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

user-interface multithreading android arguments

26
推荐指数
3
解决办法
3万
查看次数