`
- 浏览:
18833 次
- 性别:
- 来自:
深圳
-
Android平台上的软件普遍的起始界面都是一个欢迎界面,我们看到的可能仅仅只是一张图片或是一些动画效果。随后才加载登录页面或是主菜单页面,但是在我们用手机打开一些Android程序的时候就会发现,如果我们的手机没有连入网络的时候,有些程序就会提示“当前网络不可用”或是“请检查您的网络”之类的提示框。原因就是因为在这些程序的欢迎界面启动的时候去检查了你当前手机的网络状态。并给予对应的提示,但是据我本人一些程序使用体验中发现,大多数程序的欢迎界面检查了手机的网络状况,提示框有一个确定按钮,当你点击确定按钮之后,程序也退出了。所以在最近的一个项目中,我也想在项目欢迎界面中加入这样的效果,但是不知道其他程序是怎么实现的,后来自己摸索了下,想出了一个解决方案。就是利用Activity生命周期来实现。在此记录分享下,也希望大家也分享下自己的实现思路。
我是用真机测试的。
1 新建一个android工程,
新建布局文件,welcome.xml
然后新增一个activity,命名为WelcomeActivity
当然还有一张欢迎界面的图片welcome.png,设置welcome的background为welcome.png,并在Androidmanifest中设置
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
这行代码是实现全屏及隐藏标题栏
2 大家都知道Activity的生命周期(如果不是很熟悉的话可以查找相关资料),当一个Activity启动的时候,首先是执行onCreate()方法,再是onStart()方法,至此界面就呈现出来了。
定义一个检查网络状况的方法 如下:
private boolean CheckNetWork(Activity activity){
ConnectivityManager manager = (ConnectivityManager)activity.getSystemService(Context.CONNECTIVITY_SERVICE);
//检查网络
NetworkInfo info = manager.getActiveNetworkInfo();
if(info==null || !info.isConnected()){
return false;
}
if(info.isRoaming()){
return true;
}
return true;
}
3 并在onStart()方法中调用,如下:
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "ActivityLifeCycle==>onStart");
if(!CheckNetWork(this)){
AlertDialog.Builder builder = new Builder(LogoActivity.this);
builder.setInverseBackgroundForced(true);
builder.setMessage("当前网络不可用,是否自动前往设置当前网络").setPositiveButton("是",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
}
}).setNegativeButton("否",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
WelcomeActivity.this.finish();
}
});
AlertDialog ad = builder.create();
ad.show();
}
else{
//网络正常,进入主界面
}
}
4 注意:startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));这句话的意思是跳转到设置无线和网络面板。当网络不可用时,可以让用户可以直接跳转到网络设置界面,进行网络设置。当然也可以不设置网络,退出程序。
需要注意的是跳转到设置面板是需要权限的。将下面这行代码
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
添加到AndroidManifest.xml中即可
5 下面说下这个实例的activity的生命周期过程吧
【1】 最开始启动程序=>onCreate();
【2】 执行onStart()方法调用网络检查。用户点击是直接跳到无线和网络设置面板。
【3】 此时,activity 会依次调用onResume(),onPause(),onStop()方法。
【4】 用户设置好网络后,按返回按钮。即回来了我们的Android程序(因为我们的程序没有被Destroyed掉)。
【5】 此刻activity会依次调用onRestart(),onStart(),onResume()。
【6】 此刻里面有两个方法是被重复调用了,就是onStart()和onResume()方法。所以我选择在这两个方法中做网络检查判断处理。
当然最后我想通过这个思路还可以在欢迎界面做一些其他的处理。就看需求了。
最后总结下,其实就是一个欢迎界面做网络状态检查的功能,加上本人用户体验感觉的修改。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
android activity生命周期实例,利用切换横竖屏来演示
演示Android activity的小工程,对应博文地址:http://blog.csdn.net/djstavaV/article/details/48809135
Activity生命周期 启动模式实例
Activity和Service生命周期及使用AIDL通信
介绍了Activity中7个与生命周期有关的函数,使用实例代码说明他们的使用方法
主要介绍了Android编程之基于Log演示一个activity生命周期,结合完整实例形式较为详细的分析总结了Log演示activity生命周期的具体用法及Log的具体使用方法,需要的朋友可以参考下
基于Android Studio,通过简单的实例分析Activity的生命周期
设备旋转时,当前看到的Activity实例会被系统销毁,然后再创建一个新的当前Activity实例。
NavigationDrawer生命周期实例,清晰的展示了activity和NavigationDrawer生命周期之间的关系,通过log输出。
NULL 博文链接:https://ylxy3058.iteye.com/blog/2228149
开发环境 Win10/AndroidStudio3.1.1 MVC+体验Activity生命周期
本文实例分析了Android编程中activity的完整生命周期。分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误。这...
本篇博客就会介绍Activity生命周期中的不同阶段,通过实例的形式来窥探一下Activity的生命周期。搞明白Activity的生命周期是至关重要的,因为只有搞明白每个生命周期的每个阶段,你才能在不同段做不同的事情。 接...
例子主要包括Fragment与Activity之间的通信,代码中还给出了两者之间通信具体调用的函数及其顺序。
本文主要介绍Android 多个Activity相互之间的跳转,认识Activity生命周期,在做Android编程的时候用处很大,希望能帮助有需要的小伙伴
本文将通过例子跟踪一下2个Activity间跳转过程中生命周期的变化过程。 整个操作过程如下图所示: 1. 打开应用,自动开启First Activity; 2. 按下“Jump Button”按钮,打开Second Activity; 3. 按下“回退”按钮...
Activity的生命周期 Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件。 系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调...