我一直在编写这段代码并且之前运行正常,但现在它给出了异常。如果我在清单文件或其他任何地方有任何我需要做的事情请帮忙。 我想显示一个空白屏幕,后面有一个可绘制的设置,在休眠时间为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();
}
}
答案 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();