我的代码中有一个变量,说它是"状态".
我想根据此变量值在应用程序中显示一些文本.这必须在特定的时间延迟下完成.
就像是,
检查状态变量值
显示一些文字
等待10秒钟
检查状态变量值
显示一些文字
等待15秒
等等.时间延迟可能会有所不同,一旦显示文本就会设置.
我试过Thread.sleep(time delay)但失败了.有没有更好的方法来完成这项工作?
我一直在阅读很多关于线程,处理程序,loopers等的内容,我很困惑.在我的应用程序中,我希望第一个Activity启动后台工作程序.此后台工作程序将不断地从TCP套接字请求数据,并且(希望)在数据到达时将新信息发布到UI线程.如果用户转换到新的Activity,则后台需要继续执行该操作,但只向UI线程发送不同的消息,以便相应地更新新布局.
这是我到目前为止...这是我的主要活动文件
public class MyTCPTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set the layout
setContentView(R.layout.main);
// create a handler to handle messages from bg thread
Handler handler = new Handler();
BgWorkerThread bgw = new BgWorkerThread();
bgw.start();
}
Run Code Online (Sandbox Code Playgroud)
在另一个文件中我定义我的后台工作线程如下...
public class BgWorkerThread extends Thread {
@Override
public void run(){
while(true)
{
try {
// simulate a delay (send request for data, receive and interpret response)
sleep(1000);
// How do I send data here to the UI …Run Code Online (Sandbox Code Playgroud)