用于临时屏幕的线程

时间:2013-08-19 04:52:31

标签: android eclipse multithreading runnable

我一直在编写这段代码并且之前运行正常,但现在它给出了异常。如果我在清单文件或其他任何地方有任何我需要做的事情请帮忙。 我想显示一个空白屏幕,后面有一个可绘制的设置,在休眠时间为5000之后,它必须传输活动。

package com.example.app3;



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

    public class Welcome extends Activity {
        TextView tv;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.welcome);
            tv = (TextView)findViewById(R.id.textView1);


            Thread t1 = new Thread(){
                public void run(){
                    try {
                        Thread.sleep(7000);
                        finish();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }finally{
                        Intent inn = new Intent(Welcome.this,MainActivity.class);
                        startActivity(inn);
                    }
                }

            };
            t1.start();
}
}

2 个答案:

答案 0 :(得分:1)

如果您正在处理UI,那么您需要Handler来执行此操作。考虑以下示例,其中使用线程中的处理程序更新UI(进度条)。

mHandler = new Handler();

new Thread(new Runnable(
  @Override
  public void run () {
    // Perform long-running task here
    // (like audio buffering).
    // you may want to update some progress
    // bar every second, so use handler:
    mHandler.post(new Runnable() {
     @Override
     public void run () {
       // make operation on UI - on example
       // on progress bar.
     }
    });
  }
)).start();

希望这有帮助。

答案 1 :(得分:0)

您可以使用倒计时器类

new CountDownTimer(2500, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {

            }

            @Override
            public void onFinish() {

                Intent i = new Intent(StartSplashActivity.this,NextActivity.class);
                startActivity(i);
                StartSplashActivity.this.finish();

            }
        }.start();