Android 如何使一项活动在一定时间内保持活动状态,然后再开始另一项活动?
如何创建受限于时间的活动。我想当我启动我的应用程序时,会出现一个初始活动,仅持续几秒钟,以显示应用程序名称及其版本和一些其他信息,并在指定时间后启动应用程序。我做过这样的事情,但最初的活动有一个动画,当动画结束时,新的活动或应用程序开始。但是,现在我的初始活动没有动画,例如,我不知道如何使活动保持活动/活动10秒,当10秒结束时,另一个应用程序启动?使用处理程序等待(例如3秒)并继续:Android 如何使一项活动在一定时间内保持活动状态,然后再开始另一项活动?,android,android-activity,Android,Android Activity,如何创建受限于时间的活动。我想当我启动我的应用程序时,会出现一个初始活动,仅持续几秒钟,以显示应用程序名称及其版本和一些其他信息,并在指定时间后启动应用程序。我做过这样的事情,但最初的活动有一个动画,当动画结束时,新的活动或应用程序开始。但是,现在我的初始活动没有动画,例如,我不知道如何使活动保持活动/活动10秒,当10秒结束时,另一个应用程序启动?使用处理程序等待(例如3秒)并继续: private static int SPLASH_TIME_OUT = 3000; new
private static int SPLASH_TIME_OUT = 3000;
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with timer running. This is useful to showcase your app logo/company or something like that.
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
您可以使用计时器:
private Timer timer;
@Override
protected void onResume (){
super.onResume();
timer = new Timer();
timer.schedule(new OpenActivityTask(), SOME_TIME_IN_MILLIS);
}
@Override
protected void onPause (){
super. onPause();
timer.cancel();
timer = null;
}
private static class OpenActivityTask extends TimerTask {
@Override
public void run() {
//TODO Go to new activity
}
}
如果您在到达延迟时间之前手动关闭活动,或者由于某种原因它转到后台,则会提供取消
另一个选项是使用并计划一次拍摄pendingent
。这种方法的代码可能较短,并且允许安全地取消:
PendingIntent pi;
@Override
protected void onResume (){
super.onResume();
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, YourOtherActivity.class);
pi = PendingIntent.getActivity(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + SOME_TIME_IN_MILLIS, pi);
}
@Override
protected void onPause (){
super. onPause();
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pi);
}