我的活动中有以下代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isPreviouslyLoggedIn()) {
setContentView(R.layout.splash);
final TextView revolution=(TextView) findViewById(R.id.textView1);
final Button login=(Button) findViewById(R.id.loginButton);
final Button signUp=(Button) findViewById(R.id.signUpButton);
login.setOnClickListener(loginListener);
signUp.setOnClickListener(signUpListener);
}
else {
setContentView(R.layout.home);
Intent intent = new Intent(getApplicationContext(), PickUpActivity.class);
startActivity(intent);
}
}
执行if
语句时,layout
设置为splash。但是,在执行else
语句的情况下,布局未设置为home
,并且intent
直接启动。为什么会发生这种情况?如何防止这种情况发生?
答案 0 :(得分:1)
试试这种方式..
protected boolean active = true;
protected int time = 5000;
Thread thread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while (active && (waited < time)) {
sleep(100);
if (active) {
waited += 100;
}
}
} catch (InterruptedException e) {
} finally {
finish();
Intent Go_Activity = new Intent(Screen.this, otherActivity.class);
startActivity(Go_Activity);
stop();
}
}
};
thread.start();
它可以帮到你。
感谢。
答案 1 :(得分:0)
设置任意时间或线程等待一段时间进行下一个活动。当执行else语句然后布局设置但很少时间。因此,您无法显示它。
由于
答案 2 :(得分:0)
你知道你想问什么?直接设置内容视图后,您将开始另一个活动,因此它将显示新的(已启动)活动布局......那么什么是错的?