打开主页,延时5秒跳到下一个Activity

解决方案 »

  1.   

    ...那也只能是不阻塞的延时,就是在子线程设置个定时器,然后timer out了就进入下一个activity
    肯定不能在主线程中延时,5s就会报ANR了。所以,主页启动后先创建一个handler,然后延时5s后发送一个消息,消息响应后就直接跳转到下一个界面。
      

  2.   

    直接开个线程,然后sleep 5秒,用Intent传递到下一个Activity就可以了
      

  3.   


    public class FPAEstimaterActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);//运行的结果是FPAEstimaterActivity          
             new Thread(){               //的UI出来后程序不往下走了  
             @Override
             public void run(){
             SystemClock.sleep(5000);
             }
    }.start();
    Intent i=new Intent(this, SelectTest.class);
    startActivity(i);
            }
        }这样行吗
      

  4.   

    可是效果不明显啊,是不是由于模拟器太卡了
    FPAEstimaterActivity主界面闪了一下直接到 SelectTest.Avtivity页面了,那个延时的效果不明显啊
      

  5.   

    直接开个线程,然后sleep 5秒,用Intent传递到下一个Activity就可以了
      

  6.   

    不是不明显,应该是方式不太规范,
    SystemClock.sleep(5000);执行完后才去startActivity,所以这样public class FPAEstimaterActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);//运行的结果是FPAEstimaterActivity          
             new Thread(){               //的UI出来后程序不往下走了  
                @Override
                public void run(){
                    SystemClock.sleep(5000);
                    mHandler.sendmesage(0);
                }
            }.start();
     
            }
           Handler mHandler = new Handler(){
             void handlemeeage(Message msg){
                if(msg.what == 0){
                          Intent i=new Intent(this, SelectTest.class);
                          startActivity(i);   
                }
              }
           };
        }
      

  7.   

    handlemeeage里把
    Intent i=new Intent(this, SelectTest.class)的this改成FPAEstimaterActivity.this就行了
      

  8.   


    public class FPAEstimaterActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            try {
    new Thread(){ }.sleep(10000);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } Intent i=new Intent(this, SelectTest.class);
    startActivity(i);
            }
        }
    我又改了下,这会这个延迟的效果灰常到位,但是
    setContentView(R.layout.main);
    这个效果出不来了,我在.main里设置了一张背景图
      

  9.   


    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.os.SystemClock;public class FPAEstimaterActivity extends Activity {
        /** Called when the activity is first created. */
                /** Called when the activity is first created. */
                @Override
                public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.main);//运行的结果是FPAEstimaterActivity          
                     new Thread(){               //的UI出来后程序不往下走了  
                        @Override
                        public void run(){
                            SystemClock.sleep(5000);
                            mHandler.sendEmptyMessage(0);
                        }
                    }.start();
             
                    }
                   Handler mHandler = new Handler(){
                   public void handleMessage(Message msg){
                        if(msg.what == 0){
                                  Intent i=new Intent(FPAEstimaterActivity.this, SelectTest.class);
                                  startActivity(i);   
                        }
                      }
                   };
                }
    OK,感谢各位,这个问题解决了,先将主要源码送上