我正在创建一个新的Android应用程序
我希望在一段时间后从一个活动切换到另一个活动,我该怎么做?
请指导我
答案 0 :(得分:1)
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app Next activity
Intent i = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(i);
// close this activity
finish();
}
}, TIME_OUT);
答案 1 :(得分:0)
有很多方法可以做到这一点。
您可以使用postDelayed()
,但不建议这样做,因为您不能停止它,或者在活动生命周期的各个阶段之间可靠地控制它,以防止例如当时的奇怪行为用户在延迟过期之前退出活动。
你需要一些锁或其他机制。
最恰当的方法是在第一个活动onPostResume()
上启动计时器,这将在一段延迟后启动另一个活动。
TimerTask mStartActivityTask;
final Handler mHandler = new Handler();
Timer mTimer = new Timer();
@Override
private protected onPostResume() { // You can also use onResume() if you like
mStartActivityTask = new TimerTask() {
public void run() {
mHandler.post(new Runnable() {
public void run() {
startNewActivity(new Intent(MyClass.class));
}
});
}};
// This will start the task with 10 seconds delay with no intervals.
mTimer.schedule(mStartActivityTask, 100000, 0);
}
private void startNewActivity(Intent i) {
mTimer.cancel(); // To prevent multiple invocations
startActivity(i); // Start new activity
// finish(); // Optional, depending if you want to return here.
}
答案 2 :(得分:0)
试试此代码
private Thread thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
thread = new Thread(this);
thread.start();
}
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Intent userName = new Intent(this, UserNameActivity.class);
startActivity(userName);
}