相关疑难解决方法(0)

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万
查看次数

android - 引起:android.view.ViewRootImpl $ CalledFromWrongThreadException

可能重复:
Android - ViewRootImpl $ CalledFromWrongThreadException

我试图从我的URL获取图像并在应用程序中显示但它抛出错误引起:android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图.以下是我的代码

package com.smartag.bird.dev;

public class MainActivity extends Activity {
    static String ndefMsg = null;
    static String ndefMsg1 = null;
    NfcAdapter mNfcAdapter;
    PendingIntent mNfcPendingIntent;
    IntentFilter[] mNdefExchangeFilters;
    static final String TAG = "Read Tag";
    TextView mTitle;
    private static ImageView imageView;
    static String url = "http://sposter.smartag.my/images/chicken_soup.jpg";
    private static Bitmap downloadBitmap;
    private static BitmapDrawable bitmapDrawable;
    private static boolean largerImg = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);            
        //setContentView(R.layout.main);
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
        mNfcPendingIntent …
Run Code Online (Sandbox Code Playgroud)

java url android image

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×2

arguments ×1

image ×1

java ×1

multithreading ×1

url ×1

user-interface ×1