安卓开发两秒执行另外一个操作源码 很简单

来源:互联网 发布:php内存回收的机制 编辑:程序博客网 时间:2024/06/10 18:54

先来一桶理论,再来一桶源码


有时候我们需要在某个 Activity 停留几秒种,然后再跳到下一个 Activity。那么这个怎么实现呢?

一个方法是可以使用 Thread 的 sleep 函数,这个我们在 用Handler实现线程间的消息通信 也有提到:

1try {
2    Thread.sleep(1 1000);
3catch (InterruptedException e) {
4    // TODO Auto-generated catch block
5    e.printStackTrace();
6}

但是这样对于某些场合并不好,比如一个 App,打开的时候进入欢迎页面,用 sleep 方法做停留的话,欢迎页面可能会显示不了的。

也可以用 Timer 来做停留。比如:

01private void getHomeActivity() {
02    Timer timer=new Timer();
03    TimerTask task=new TimerTask(){
04        public void run(){
05            Intent intent = new Intent(InitActivity.this, MainActivity.class);
06            startActivity(intent);
07            overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
08        }
09    };
10    timer.schedule(task, 2500);
11}


方法一

[java] view plain copy
  1. new Handler().postDelayed(new Runnable() {    
  2.     @Override    
  3.     public void run() {    
  4.         Intent intent = new Intent(MainActivity.this,    
  5.                 ExampleActivity.class);    
  6.         startActivity(intent);    
  7.     }    
  8.   
  9. }, SPLASH_DISPLAY_LENGHT);    

方法二

[java] view plain copy
  1. final Intent localIntent = new Intent(this, ExampleActivity.class);    
  2. Timer timer = new Timer();    
  3. TimerTask tast = new TimerTask() {    
  4.     @Override    
  5.     public void run() {    
  6.         startActivity(localIntent);    
  7.     }    
  8. };    
  9. timer.schedule(tast, SPLASH_DISPLAY_LENGHT);   

使用范例

[java] view plain copy
  1. package com.app.weixin;  
  2.   
  3. import java.util.Date;  
  4. import java.util.Timer;  
  5. import java.util.TimerTask;  
  6.   
  7. import com.app.wexin.R;  
  8.   
  9. import android.app.Activity;  
  10. import android.content.Intent;  
  11. import android.os.Bundle;  
  12. import android.os.Handler;  
  13.   
  14. public class WelcomeActivity extends Activity{  
  15.   
  16.   
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         // TODO Auto-generated method stub  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.welcome);  
  22.          final Intent localIntent = new Intent(this, Tabs.class);    
  23.          Timer timer = new Timer();    
  24.          TimerTask tast = new TimerTask() {    
  25.              @Override    
  26.              public void run() {    
  27.                  startActivity(localIntent);    
  28.              }    
  29.          };    
  30.          timer.schedule(tast, 1500);   
  31.     }  
  32. }  
此为暂停1.5秒后跳转。
原创粉丝点击