Android 启动页面延迟跳转与第二次启动分支跳转

前言

  这篇博客是关于启动APP时页面都会延迟几秒跳转,如果第一次启动就会欢迎页延迟几秒后跳到一个指导页面,指导页面用viewpager来实现,如果是第二次启动与接下来的启动都是直接从欢迎页面直接跳到主页面去。
代码

package com.zhanghaiping.happyacount;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import com.zhanghaiping.happyacount.com.zhanghaiping.happyacount.utils.SharedUtils;

/**
 * Created by hangping on 2016/5/19.
 */
public class WelcomeStartActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);

        new Handler(new Handler.Callback() {
            //处理接收到的消息的方法
            @Override
            public boolean handleMessage(Message msg) {
                //判断是否是第一次进入,实现页面分支跳转
                if (SharedUtils.getWelcomeBooleam(getBaseContext())){
                    startActivity(new Intent(getBaseContext(),MainActivity.class));
                }else {
                    startActivity(new Intent(getBaseContext(),WelcomeGuideActivity.class));
                    SharedUtils.putWelcomeBooleam(getBaseContext(),true);//存取ture值,下次直接跳转到main页面
                }
                return false;
            }
        }).sendEmptyMessageDelayed(0,3000);
    }
}

这里延迟跳转用的是Android的handler,也可以用JAVA的定时器Timer来实现延时跳转,既然是Android就用Android里面的知识来实现。
使用handler时首先要创建一个handler,如在Activity或Service中需要接受其他线程的消息,则在需要接收消息的Activity或Service中需要实现Handler.Callback接口。然后调用它的sendEmptyMessageDelayed方法,接受两个参数,第一个参数传入0,这个0的意思是what的值,你可以传随便数字,在handleMessage方法中,你可以用switch来区分不同的传值来做不同的事,第二个参数的意思是延迟多久,单位是毫秒,3000就是延迟3秒,延迟3秒后开始执行handleMessage方法。

接下来就是第二次启动页面分支的跳转得类SharedUtils类
代码

package com.zhanghaiping.happyacount.com.zhanghaiping.happyacount.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by hangping on 2016/5/28.
 */
//实现是否是第一次进入标记的读写和写入
public class SharedUtils {
    private static final String FILE_NAME = "happuAcount";
    private static final String MODE_NAME ="welcome";

//获取boolean类型值
    public static boolean getWelcomeBooleam(Context context){
        return  context.getSharedPreferences(FILE_NAME,context.MODE_PRIVATE)
                .getBoolean(MODE_NAME,false);//getBoolean的第二个参数为默认值,这里先传入false,然后在第二次启动时用putboolean将值覆盖为true
    }
//写入boolean类型的值
    public static void putWelcomeBooleam(Context context,boolean isFirst){
        SharedPreferences.Editor editor = context.getSharedPreferences(FILE_NAME,Context.MODE_APPEND)
                .edit();
        editor.putBoolean(MODE_NAME,isFirst);
        editor.commit();
    }
}

这里用sharedPreference来记录是否是首次启动,定义了两个静态方法分别用来获取和写入Boolean值,第一个静态方法返回的是false,如果是第一次启动的话WelcomeStartActivity类里面的判断语句就会调用putWelcomeBooleam方法,并传过来ture值然后记录并且startActivity(new Intent(getBaseContext(),WelcomeGuideActivity.class));跳到指导页面去,第二次启动的时候WelcomeStartActivity类里面的判断语句就会调用getWelcomeBooleam方法,此时我们boolean值已经是true了,Intent(getBaseContext(),MainActivity.class));语句就会执行,跳到主页面去,就实现了第一次启动跳到指导页面,第二次启动跳转到main页面。
关于Android sharedpreference教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值