文档章节

Splash欢迎界面+判断网络状况

Spoon2014
 Spoon2014
发布于 2015/06/02 11:18
字数 282
阅读 25
收藏 0
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.view.animation.AlphaAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;
public class SplashActivity extends Activity {
	private TextView versionNumber;
	private LinearLayout mLinearLayout;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.splash);
		mLinearLayout = (LinearLayout) this.findViewById(R.id.LinearLayout01);
		versionNumber = (TextView) this.findViewById(R.id.versionNumber);
		versionNumber.setText(getVersion());// 设置版本号
		// 判断当前网络状态是否可用
		if (isNetWorkConnected()) {
			// splash 做一个动画,进入主界面
			AlphaAnimation alpha = new AlphaAnimation(0.5f, 1.0f);
			alpha.setDuration(3000);
			mLinearLayout.setAnimation(alpha);
			mLinearLayout.startAnimation(alpha);
			// 通过handler 延时3秒 执行Runnable任务
			new Handler().postDelayed(new LoadMainTabTask(), 3000);
		} else {
			showSetNetworkDialog();
		}
	}
	private class LoadMainTabTask implements Runnable {
		public void run() {
			Intent intent = new Intent(SplashActivity.this,
					MainActivity.class);
			startActivity(intent);
			finish();
		}
	}
	/**
	 * 对话框提示用户设置网络
	 * */
	private void showSetNetworkDialog() {
		AlertDialog.Builder builder = new Builder(this);
		builder.setTitle("设置网络");
		builder.setMessage("网络错误请检查网络状态");
		builder.setPositiveButton("设置网络", new OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				Intent intent = new Intent();
				// 类名一定要包含包名
				intent.setClassName("com.android.settings",
						"com.android.settings.WirelessSettings");
				startActivity(intent);
				finish();
			}
		});
		builder.setNegativeButton("取消", new OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				finish();
			}
		});
		builder.create().show();
	}
	/**
	 * 获取版本号
	 * */
	private String getVersion() {
		try {
			PackageInfo info = getPackageManager().getPackageInfo(
					getPackageName(), 0);
			return "版本号: " + info.versionName;
		} catch (NameNotFoundException e) {
			e.printStackTrace();
			return "Version";
		}
	}
	/**
	 * 判断网络状态
	 */
	private boolean isNetWorkConnected() {
		ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
		NetworkInfo info = manager.getActiveNetworkInfo();
		return (info != null && info.isConnected());
	}
}


© 著作权归作者所有

Spoon2014
粉丝 0
博文 47
码字总数 12039
作品 0
太原
程序员
私信 提问
Android性能优化之Splash页应该这样设计

目前SplashActivity的设计 目前市场上的应用在启动时基本上都会先启动一个SplashActivity,作为一个欢迎界面,为什么这样设计呢? 个人总结有三个优点: 1、可以给用户更好的体验 比如:可以...

u010687392
2016/01/17
0
0
Android创建启动画面

每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯...

伽罗kapple
2016/04/21
36
0
创建一个android的Splash Screen

在开发android应用的时候 ,尤其是游戏的时候,经常需要有一个Splash Screen(就类似于Eclipse启动的画面)。但是,android好像没有对这个有很好的支持(也许我没找到吧)。比如iphone,只需...

Taki
2012/08/15
1K
0
创建一个android的Splash Screen

在开发android应用的时候 ,尤其是游戏的时候,经常需要有一个Splash Screen(就类似于Eclipse启动的画面)。但是,android好像没有对这个有很好的支持(也许我没找到吧)。比如iphone,只需...

鉴客
2011/12/12
7.2K
4
分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面

此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题。 文章目录 Ionic 简介和项目需求介绍 View 缓存的处理...

达摩院法师
2015/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

DevOps是如何实现效率的提升?

随着企业业务对软件系统日益依赖,IT管理与研发模式也随之对“敏态”模式产生了需求,也就是今天时常提起的DevOps。提升效率,是DevOps实践的核心内容之一。就让我们来一起从软件生命周期的业...

嘉为科技
11分钟前
2
0
总结:linux目录之proc

我们系统大部分的基础数据采集,其实就是读取proc目录下的文件,并解析获取数据的过程。 1、如cpu利用率:直接cat /proc/cpuinfo命令,然后获取输出内容,并解析里面的数据,如cpu核数等; ...

浮躁的码农
13分钟前
2
0
比原Bapp红包应用

喜迎国庆期间,比原链在自己的移动端钱包Bycoin(下载地址)和google插件钱byone中推出了红包应用,在国庆期间深受大家好评。 那我们今天就来大概介绍一下比原红包,以及基于比原链开发dapp应用...

比原链Bytom
14分钟前
2
0
Linux中没有rc.local文件的解决方法

Linux中没有rc.local文件的解决方法是什么呢?这应该是很多工程师比较头疼的问题,下面就给大家例举几个解决办法。 比较新的Linux发行版已经没有rc.local文件了。因为已经将其服务化了。 解决...

xiangyunyan
14分钟前
2
0
数据中台在阿里巴巴集团内部的实践情况

作者:品鉴 数据中台门在阿里巴巴集团干什么的,由哪个部门掌管?数据中台在阿里巴巴的主要作用是什么呢?外面吹嘘这么神秘的数据中台在阿里实践的如何呢?今天小编正好要采访数据技术及产品...

阿里云官方博客
14分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部