欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android應(yīng)用閃屏頁延遲跳轉(zhuǎn)的三種寫法

 更新時間:2017年03月03日 15:56:21   作者:Luyifei666  
這篇文章主要介紹了 Android應(yīng)用閃屏頁延遲跳轉(zhuǎn)的三種寫法,需要的朋友可以參考下

 閃屏頁也稱之為歡迎頁。在打開一個App時,我們第一眼看到的往往是一個閃屏頁面,之所以叫閃屏頁,是因為它出現(xiàn)之后會短暫地停留幾秒鐘再跳轉(zhuǎn)到其他頁面。閃屏頁除了使用戶體驗更好外,還能給app留出初始化數(shù)據(jù)的時間。下面,是我總結(jié)的閃屏頁的三種寫法。

準(zhǔn)備工作

打開Android Studio,新建一個projectMyStudy,新建一個SplashActivity并在清單文件中將其設(shè)置為啟動Activity。在布局文件中將SplashActivity的背景設(shè)置為一張圖片(可以是手機壁紙)。

<?xml version="1.0" encoding="utf-8"?>
<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/splash"
  tools:context=".SplashActivity">
</RelativeLayout>

然后再創(chuàng)建一個HomeActivity,作為閃屏頁要跳轉(zhuǎn)的頁面。HomeActivity的布局簡單地放一個TextView就可以了:

<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.lin.mr.mystudy.HomeActivity">
  <TextView
    android:textSize="24sp"
    android:text="HomeActivity"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</RelativeLayout>

方法一:在子線程中延遲睡眠

這個方法很簡單,開啟一個子線程,然后睡眠2秒鐘再執(zhí)行跳轉(zhuǎn)代碼:

public class SplashActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    //方法一:開啟一個子線程執(zhí)行跳轉(zhuǎn)任務(wù)
    new Thread(){
      @Override
      public void run() {
        super.run();
        try {
          Thread.sleep(2000);
          Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
          startActivity(intent);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }.start();
  }
}

方法二:使用Handler發(fā)送延遲消息

我們也可以使用Handler延遲發(fā)送一個空消息,這樣Handler在2秒后收到消息后再去執(zhí)行跳轉(zhuǎn)代碼。

public class SplashActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    //方法二:使用Handler發(fā)送延遲消息
    new Handler(new Handler.Callback() {
      @Override
      public boolean handleMessage(Message msg) {
        Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
        startActivity(intent);
        return false;
      }
    }).sendEmptyMessageDelayed(0,2000);
  }

方法三:使用Java計時器

Java提供了一個類:Timer,它能夠起到一個計時器的作用。它的用法很簡單,首先是創(chuàng)建一個外部類繼承TimerTask,重寫其中的run()方法,在里面編寫跳轉(zhuǎn)頁面的代碼。接著創(chuàng)建一個Timer的對象,讓改對象去調(diào)用schedule()方法。schedule()需要傳入兩個參數(shù),第一個參數(shù)是MyTask的對象,第二個參數(shù)則是延遲的時間。

public class SplashActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    //方法三:使用Java計時器
    Timer timer = new Timer();
    timer.schedule(new MyTask(),2000);//定時器延時執(zhí)行任務(wù)的方法
  }
  //方法三:使用Java計時器
  class MyTask extends TimerTask{
    @Override
    public void run() {
      Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
      startActivity(intent);
    }
  }
}

完整代碼

package com.lin.mr.mystudy;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import java.util.Timer;
import java.util.TimerTask;
public class SplashActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    //方法一:開啟一個子線程執(zhí)行跳轉(zhuǎn)任務(wù)
//    new Thread(){
//      @Override
//      public void run() {
//        super.run();
//        try {
//          Thread.sleep(2000);
//          Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
//          startActivity(intent);
//        } catch (InterruptedException e) {
//          e.printStackTrace();
//        }
//      }
//    }.start();
    //方法二:使用Handler發(fā)送延遲消息
//    new Handler(new Handler.Callback() {
//      @Override
//      public boolean handleMessage(Message msg) {
//        Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
//        startActivity(intent);
//        return false;
//      }
//    }).sendEmptyMessageDelayed(0,2000);
    //方法三:使用Java計時器
    Timer timer = new Timer();
    timer.schedule(new MyTask(),2000);//定時器延時執(zhí)行任務(wù)的方法
  }
  //方法三:使用Java計時器
  class MyTask extends TimerTask{
    @Override
    public void run() {
      Intent intent = new Intent(SplashActivity.this,HomeActivity.class);
      startActivity(intent);
    }
  }
}

以上所述是小編給大家介紹的Android應(yīng)用閃屏頁延遲跳轉(zhuǎn)的三種寫法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android中使用AsyncTask實現(xiàn)文件下載以及進度更新提示

    Android中使用AsyncTask實現(xiàn)文件下載以及進度更新提示

    AsyncTask,它使創(chuàng)建需要與用戶界面交互的長時間運行的任務(wù)變得更簡單,本篇文章主要介紹了Android中使用AsyncTask實現(xiàn)文件下載以及進度更新提示,有興趣的可以了解一下。
    2016-12-12
  • Android識別NFC芯片制造商的方法

    Android識別NFC芯片制造商的方法

    這篇文章介紹了Android識別NFC芯片制造商的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • android 中使用TableLayout實現(xiàn)表單布局效果示例

    android 中使用TableLayout實現(xiàn)表單布局效果示例

    本篇文章主要介紹了android 中使用TableLayout實現(xiàn)表單布局效果示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Flutter路由的幾種用法小結(jié)

    Flutter路由的幾種用法小結(jié)

    這篇文章主要介紹了Flutter路由的幾種用法,包括基本路由跳轉(zhuǎn)和路由跳轉(zhuǎn)傳參方法,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Android上實現(xiàn)easyconfig(airkiss)方法

    Android上實現(xiàn)easyconfig(airkiss)方法

    本篇文章主要給大家講解了在Android系統(tǒng)上實現(xiàn)easyconfig(airkiss)的方法,有這方面需要的朋友參考學(xué)習(xí)下吧。
    2018-01-01
  • Android Studio Kotlin代碼和java代碼相互轉(zhuǎn)化實例

    Android Studio Kotlin代碼和java代碼相互轉(zhuǎn)化實例

    這篇文章主要介紹了Android Studio Kotlin代碼和java代碼相互轉(zhuǎn)化實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android WebView交互傳遞json字符串并解析的方法

    Android WebView交互傳遞json字符串并解析的方法

    這篇文章主要給大家介紹了關(guān)于Android中WebView交互傳遞json字符串并解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-05-05
  • android 把float轉(zhuǎn)換成Int的實例講解

    android 把float轉(zhuǎn)換成Int的實例講解

    今天小編就為大家分享一篇android 把float轉(zhuǎn)換成Int的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 解決Android應(yīng)用冷啟動時出現(xiàn)的白屏問題的方法

    解決Android應(yīng)用冷啟動時出現(xiàn)的白屏問題的方法

    本篇文章主要介紹了解決Android應(yīng)用冷啟動時出現(xiàn)的白屏問題的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android Studio使用USB真機調(diào)試詳解

    Android Studio使用USB真機調(diào)試詳解

    這篇文章主要為大家詳細(xì)介紹了Android Studio使用USB真機調(diào)試的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論