Android 中的线程和并行性
Posted
技术标签:
【中文标题】Android 中的线程和并行性【英文标题】:Threading and parallelism in Android 【发布时间】:2020-08-16 02:54:33 【问题描述】:我对 android 开发非常陌生。谁能帮我解决这个问题,我不知道为什么它可以完美运行,尽管我正在从工作线程更新我的TextView
。
当我说完美工作时,我的意思是 TextView
显示值计数没有任何问题。
所以,我的问题是 - “是否真的可以从后台线程更新 UI,如果没有,我错了”
public class MainActivity extends AppCompatActivity
TextView textView ;
private int count;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textview);
btn = findViewById(R.id.startbtn);
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
listen();
);
public void listen()
new Thread(new Runnable()
@Override
public void run()
long time = System.currentTimeMillis();
while(System.currentTimeMillis()<=time +10000)
count++;
textView.setText(count+"");
).start();
【问题讨论】:
【参考方案1】:使用
runOnUiThread(new Runnable()
@Override
public void run()
// Add UI code here
);
所有 UI 更新都应该在主线程上完成。
【讨论】:
但是为什么 UI 是在没有 runOnUiThread 方法的情况下从后台线程更新的。这是否意味着,我们可以从后台线程更新 UI。以上是关于Android 中的线程和并行性的主要内容,如果未能解决你的问题,请参考以下文章