我有一个启动画面(徽标活动),可在应用启动前 3 秒显示公司名称。我从一个线程启动 Main Activity,这里是代码:
public class Logo extends Activity {
Thread t;
public boolean dead = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo);
t = new Thread() {
public void run() {
try {
Intent i = new Intent(Logo.this, Main.class);
Thread.sleep(3000);
if (!dead) {
startActivity(i);
}
finish();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
t.start();
}
Main Activity 是从工作线程中调用的,这是正确的吗?此代码(使用runOnUiThread
)有什么不同?
...
if (!dead) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Intent i = new Intent(Logo.this, Main.class);
startActivity(i);
}
});
}
...
我认为在调试模式下这段代码没有区别(相同的线程、相同的操作等)。哪个是对的?