比如打开微信,有一个欢迎页面,其他很多app会做成广告页
实现方法:
(1)直接用线程Thread实现
SplshActivity.java
public class SplashActivity extends Activity { private static final int sleepTime = 2000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final View view = View.inflate(this, R.layout.activity_splash, null); setContentView(view);//加载布局 //为布局设置动画,可以不做 AlphaAnimation animation = new AlphaAnimation(0.3f, 1.0f); animation.setDuration(1500); view.startAnimation(animation); } @Override protected void onStart() { super.onStart(); new Thread(new Runnable() { public void run() { try { Thread.sleep(sleepTime); } catch (InterruptedException e) { }//让该页面sleep两分钟之后自动跳转 startActivity(new Intent(SplashActivity.this, LoginActivity.class)); finish(); } }).start(); } }
activity_splash.xm;就是显示一张全屏的图片
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/excurcions_loading"> </RelativeLayout>
(1)用计时器Timer实现
public class ActivityExcurcionsLoading extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); Timer timer = new Timer(); timer.schedule(task, 1000);//调用 schedule() 后,要等待1000毫秒的时间才可以第一次执行task里面的run() 方法。 } private TimerTask task = new TimerTask() { @Override public void run() { Intent intent = new Intent(ActivityExcurcionsLoading.this, ActivityExcurcions.class); startActivity(intent); finish(); } }; }
schedule(TimerTask task, long delay) 大意是在延时delay毫秒后执行task。并没有提到重复执行
schedule(TimerTask task, long delay, long period) 大意是在延时delay毫秒后重复的执行task,周期是period毫秒。
结论:schedule(TimerTask task, longdelay)只执行一次,schedule(TimerTask task, long delay, longperiod)重复的执行。