【发布时间】:2011-06-10 08:47:50
【问题描述】:
在我的应用程序中,我在 Android 中创建了一个启动屏幕类型的东西。它应该保持 5 秒。
我的问题是如何在 5 秒后自动显示另一个活动?
初始屏幕没有按钮,而是应该在 5 秒后自动显示另一个活动,而无需单击按钮。
【问题讨论】:
标签: android timer splash-screen
在我的应用程序中,我在 Android 中创建了一个启动屏幕类型的东西。它应该保持 5 秒。
我的问题是如何在 5 秒后自动显示另一个活动?
初始屏幕没有按钮,而是应该在 5 秒后自动显示另一个活动,而无需单击按钮。
【问题讨论】:
标签: android timer splash-screen
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent mainIntent = new Intent(LaunchActivity.this, HomeActivity.class);
LaunchActivity.this.startActivity(mainIntent);
LaunchActivity.this.finish();
}
}, 5000);
【讨论】:
TimerTask task = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(SplashScreen.this, MainMenu.class);
startActivity(intent);
finishscreen();
}
};
Timer t = new Timer();
t.schedule(task, 5000);
和
private void finishscreen() {
this.finish();
}
【讨论】:
您可以在此处使用thread
例如
// thread for displaying the SplashScreen
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep(500);
if(_active) {
waited += 500;
}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
// start your activity here using startActivity
stop();
}
}
};
splashTread.start();
【讨论】:
这也可以使用 android CountDownTimer 类来完成。
请参阅此示例以了解 5seconds 延迟。
new CountDownTimer(5000, 1000) {
public void onFinish() {
Intent startActivity = new Intent(ThisActivity.this,ActivityToStart.class);
startActivity(startActivity);
finish();
}
public void onTick(long millisUntilFinished) {
}
}.start();
您可能还需要在AndroidManifest.xml 文件中定义您的父活动,
<activity
android:name=".ActivityToStart"
android:label="Back"
android:parentActivityName=".MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
【讨论】: