`
- 浏览:
19271 次
- 性别:
- 来自:
深圳
-
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
相关推荐
6. **销毁(Destroyed)**: `onDestroy()`是Activity生命周期的最后阶段,表明Activity将被彻底移除。通常在用户退出或系统资源紧张时发生。这是清理资源和释放内存的好时机。 在横竖屏切换过程中,Activity生命...
本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...
**Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...
**Activity生命周期** Activity的生命周期由一系列回调方法组成,这些方法在Activity的不同状态之间被调用。主要的状态包括: 1. **创建(Created)**:当Activity首次被创建时,`onCreate()`方法被调用。这是初始...
通过这样的实例,开发者能够更直观地理解Activity生命周期函数的执行顺序及其应用场景。在实际开发中,合理地处理这些生命周期方法可以提高应用程序的性能和用户体验,确保数据的正确保存和恢复,以及有效地管理内存...
本篇将深入探讨Activity和Service的生命周期以及如何利用Android Interface Definition Language (AIDL)进行进程间通信。 Activity是Android应用程序的用户界面,它负责与用户交互。Activity的生命周期分为几个关键...
在`onResume()`中,用户可以与Activity进行交互,它是Activity生命周期中的活动状态。日志显示Activity进入了`onResume()`状态。 4. `onPause()`:当Activity失去焦点,即将被另一个Activity覆盖或者部分隐藏时调用...
总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...
在“Android学习3——Activity生命周期”这个主题中,我们将深入探讨Activity如何启动、运行、暂停、停止以及销毁,并了解每个状态之间的转换。 Activity生命周期主要包括以下几个关键状态: 1. **初始状态...
标题“设备旋转与Activity生命周期”所指的知识点主要是Android中Activity如何响应设备的屏幕方向变化。Activity是Android应用程序的基本组件,它负责与用户进行交互。在设备旋转时,系统会触发Activity的生命周期...
这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、实例化成员变量和绑定数据。 2. **onStart()**:在onCreate()之后,系统会调用onStart(),此时Activity对用户可见但可能仍被其他...
总结起来,Activity生命周期管理是Android开发中的关键技能,通过合理使用`ActivityLifeCallbackManagers`和`ActivityLifeCallbackManager`这样的工具类,可以更高效、准确地控制和监控Activity的状态,从而提高应用...
博客“Activity生命周期源代码”可能详细解释了这些内部机制,并给出了实例代码。通过分析源代码,开发者可以学习如何在不同生命周期方法中适当地保存和恢复状态,以及如何优化Activity性能,避免内存泄漏。 总之,...
在这个"Activity生命周期demo"中,我们将深入探讨Activity在不同状态下的行为及其转换过程。 一、Activity生命周期概述 Activity的生命周期主要分为三个阶段:初始化阶段、运行阶段和销毁阶段。这些阶段通过一系列...
在这个"Activity生命周期demon"中,我们将深入探讨Activity在不同状态下的行为及其转换。 1. **Activity生命周期的阶段** - **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这个阶段,...
这是Activity生命周期中的活动状态。 4. `onPause()`: 当系统需要将Activity置于后台,或者有新的透明Activity或部分透明Activity覆盖当前Activity时,会调用此方法。尽管用户仍能看到部分Activity,但不应在此执行...
这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、初始化数据等。 2. **可见状态(Started/Resumed)**:`onStart()`在Activity变得对用户可见时调用,但用户还不能与其交互。接着,`...
1. **初始状态**:当Activity首次被创建时,会经历`onCreate()`方法,这是Activity生命周期的第一个回调,用于进行初始化工作,如设置布局、数据绑定等。 2. **启动状态**:`onStart()`方法紧接着`onCreate()`,...