2012-04-29 40 views
0

我有下面的代码,它创建一个启动画面。当我开始我的程序,我不认为闪屏,而不是我直接的第一个活动,请参阅:为什么我无法查看启动画面?

public class splash extends Activity { 
private static final int STOPSPLASH = 0; 
//time in milliseconds 
private static final long SPLASHTIME = 13000; 
private ImageView splash; 
//handler for splash screen 
private Handler splashHandler = new Handler() { 
/* (non-Javadoc) 
* @see android.os.Handler#handleMessage(android.os.Message) 
*/ 
@Override 
public void handleMessage(Message msg) { 
switch (msg.what) { 
case STOPSPLASH: 
//remove SplashScreen from view 
splash.setVisibility(View.GONE); 
break; 
} 
super.handleMessage(msg); 
} 
}; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
setContentView(R.layout.main);   
Intent intent = new Intent(this, prima.class); 
splash = (ImageView) findViewById(R.id.imageView1); 
Message msg = new Message(); 
msg.what = STOPSPLASH;  
splashHandler.sendMessageDelayed(msg, SPLASHTIME);   
startActivity(intent); 
} 
} 

回答

1

你必须从你的处理器做startActivity()。如果你直接做,你会直接切换到下一个活动。

public class splash extends Activity { 
    private static final int STOPSPLASH = 0; 
    // time in milliseconds 
    private static final long SPLASHTIME = 13000; 
    private Intent nextActivity; 

    // handler for splash screen 
    private Handler splashHandler = new Handler() { 
     @Override 
     public void handleMessage(Message msg) { 
      switch (msg.what) { 
       case STOPSPLASH: 
        // start next Activity 
        startActivity(nextActivity); 
        break; 
      } 
     } 
    }; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     nextActivity = new Intent(this, prima.class); 
     splashHandler.sendEmptyMessageDelayed(STOPSPLASH, SPLASHTIME); 
    } 
} 
相关问题