Android启动----splash应用?
来源:互联网 发布:计算机编程学校 编辑:程序博客网 时间:2024/05/21 11:19
广大博友,看过后帮忙顶顶,谢谢大家!!!
转载请注明:http://blog.csdn.net/richway2010/article/details/6582818
【博主:各位博友,网友们,大家网上好!欢迎光临本博客。 欢迎多多交流,多提意见,互相学习,互相进步,我们的口号是:好好学习,天天向上。】
很多应用程序,进入主程序都需要一个过程,这个过程中如果什么都不做,给用户的体验会不怎么友好,所以为了更好的用户体验,我们需要加上splash,让用户在等在的过程中,知道程序在运行,下面我就讲一个简单的例子,在应用中如何使用splash。例子比较简单,实践中会复杂的多,希望能指引你,好了,不多说,直接DEMO:
首先新建工程SplashTest,如图:
在新建的工程中增加一个HelloWorldActivity.java并在manifest.xml中定义activity,增加一个页面splash.xml
SplashTestActivity.java源码:
package org.guocheng.splash;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;public class SplashTestActivity extends Activity {private final long SPLASH_LENGTH = 3000;Handler handler = new Handler(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); handler.postDelayed(new Runnable() {@Overridepublic void run() {Intent intent = new Intent(SplashTestActivity.this, HelloWorldActivity.class);startActivity(intent);finish();}}, SPLASH_LENGTH);//3秒后跳转 }}
HelloWorldActivity.java源码:
package org.guocheng.splash;import android.app.Activity;import android.os.Bundle;public class HelloWorldActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);}}
splash.xml源码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="splash page....." /></LinearLayout>下面看一下运行效果图:
运行进入:
3秒后:
ok!
知识点总结:
Handler().postDelayed 是延迟指定的时间再执行
Handler类主要可以使用如下3个方法来设置执行Runnable对象的时间:
// 立即执行Runnable对象
public final boolean post(Runnable r);
// 在指定的时间(uptimeMillis)执行Runnable对象
public final boolean postAtTime(Runnable r, long uptimeMillis);
// 在指定的时间间隔(delayMillis)执行Runnable对象
public final boolean postDelayed(Runnable r, long delayMillis); 有关 Handler 类的更详细可以看这篇文章:
下面两行代码启动一个新的Activity,同时关闭当前Activity。
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
活动状态图:
如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就时说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。
当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。
随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。
例如上面例子中:从 SplashActivity 中启动了 HelloWorldActivity,则当前处于栈顶端的是 HelloWorldActivity,第二层是 SplashActivity 。
当我们调用 SplashActivity.finish()方法时(我们是在SplashActivity中通过SplashActivity.this.finish()调用的),SplashActivity 从 Active 状态转换 Stoped 状态,并被系统从栈中移除,标志可以被“回收”。
Activity 的状态与它在栈中的位置关系如下图:
上图的例子是
从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1,当我们在 Activity2中调用 Activity2.finish()方法时,Activity Manager 重新激活 Activity1 并入栈,Activity2 从 Active 状态转换 Stoped 状态,同时标注Activity2可以被“回收” 。Activity1. onActivityResult(int requestCode, int resultCode, Intent data)方法被执行,Activity2 返回的数据通过 data参数返回给 Activity1。
- Android启动----splash应用?
- Android应用启动-闪屏(splash)
- Android启动画面Splash
- Android启动画面Splash
- Android开发入门应用启动常见关于Splash的优缺点
- android程序启动画面-Splash
- android的splash启动画面
- Android启动页面设置Splash
- phonegap android项目设置应用启动图片 splash screen 启动图片
- Android开发之提高应用启动速度splash页面瞬间响应 避免APP启动闪白屏
- 解决Splash应用启动白屏问题
- 关于应用的Splash启动页
- android程序启动画面之Splash总结
- android程序启动画面之Splash总结
- android程序启动画面之Splash总结
- android程序启动画面之Splash总结
- Android程序启动画面之Splash总结
- android程序启动画面之Splash总结
- Websphere中的server1无法启动
- 4.6访问控制
- spring+hibernate+mina
- 在Android模拟器中使用google maps的基本配置
- 纪念"七七事变"勿忘民族之苦难
- Android启动----splash应用?
- SICP Exercise 3.22
- LDD3学习笔记(3):字符驱动1
- RAC和Standby各有什么特点和作用,如何选择呢?
- 树状数组
- php中对上传到服务器的文件重命名
- 如何修改ubuntu系统的主机名
- python解决 'ascii' codec can't decode byte 0xe5 in position 3: ordinal not in range(128)
- 四种常见的鼠标事件