Andriod耗时操作的处理(音乐播放器欢迎界面)
来源:互联网 发布:电能质量管理 大数据 编辑:程序博客网 时间:2024/06/05 04:04
在做Android开发的时候,有时候需要在一个Activity的里面调用两次 setContentView方法。比如在应用启动的时候,开始显示欢迎界面,在显示欢迎界面的同时,进行后台数据的处理,等到后台数据准备好了,才显示 真正的应用界面。这样的做法不会让使用者有突兀的感觉。反之,应用已启动就显示真正的应用界面,但在后续的操作需要准备数据的时候,假定是5秒钟,那么在 这5秒钟内使用者将无法使用该应用,这样用户界面显然是不够友好的。
为了实现欢迎界面,大家很自然地就会想到:在onCreate方法中,调用两次 setContentView。是的,要调用两次setContentView,但怎么调用还是有点技巧,而不是简单地调用两次 setContentView就可以解决问题的。下面,我们就用实际的例子来给予说明。
import android.app.Activity;import android.os.Bundle; public class WelcomeActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); // 把这一句改为下面一句,用以显示欢迎界面 setContentView(R.layout.welcome); // 下面是模拟数据处理需要5秒钟的时间 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } setContentView(R.layout.main); // 显示真正的应用界面 }}你将会发现,欢迎界面根本没有出现。在本该出现欢迎界面的时候,界面上什么也没有,过了五秒钟程序会直接显示主页面,将setContentView(R.layout.welcome);和下面的setContentView(R.layout.main); 交换位置后程序运行时开始的五秒钟界面什么也不现实,五秒钟后会出现欢迎界面.因为setContentView方法所指定的View,只有在onCreate方法返回后才会显示在界面上。因此,如果调用了两次setContentView方法,只有最后一次才是有效的。
import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message; public class WelcomeActivity extends Activity{ private Handler handler; // 声明handler @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); // 把这一句改为下面一句 setContentView(R.layout.welcome); // 初始化handler handler = new Handler() { @Override public void handleMessage(Message msg) { if(msg.what == 1) // handler接收到相关的消息后 { setContentView(R.layout.main); // 显示真正的应用界面 } } }; // 新建一个线程,过5秒钟后向handler发送一个消息 Runnable runnable = newRunnable() { public void run() { try { Thread.sleep(5000);//用静止五秒张模拟耗时操作 } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(1); } }; Thread thread = new Thread(runnable); thread.start(); // // 下面是模拟数据处理需要5秒钟的时间// try// {// Thread.sleep(5000);// } // catch (InterruptedException e)// {// e.printStackTrace();// }// // setContentView(R.layout.main); }}
出自:http://blog.csdn.net/pathuang68/article/details/6713498
0 0
- Andriod耗时操作的处理(音乐播放器欢迎界面)
- 多个类操作同一个Ui界面的方法(音乐播放器前期总结)
- 音乐播放器-引导界面的实现
- 写的一个音乐播放器界面
- 音乐播放器操作
- 基于android的网络音乐播放器-播放控制界面(九)
- 简述Andriod如何处理UI与耗时操作的通信,有哪些方式及各自的优缺点。
- android音乐播放器的常用操作
- Android开发本地及网络Mp3音乐播放器(二)SplashActivity(欢迎界面)
- 功能齐全界面漂亮的c#音乐播放器
- 功能齐全界面漂亮的c#音乐播放器
- 自己动手开发音乐播放器(一)主界面的搭建
- 自己动手开发音乐播放器(二)附加界面的搭建
- 自己动手开发音乐播放器《八》迷你界面的实现
- Android 音乐播放器的实现(二)界面的实现
- Android音乐播放器(1)--主界面
- Android 音乐播放器 (1)界面篇
- Android Fragment应用实战(音乐播放器界面)
- Android GSM驱动模块(rild)详细分析
- SQL Server中角色与权限管理
- 数据库创建及授权
- 十六进制的减法
- nginx或tomcat的性能优化调整详解
- Andriod耗时操作的处理(音乐播放器欢迎界面)
- 音乐播放器版本
- #笔记#圣思园 JavaWeb 第43讲——EL表达式
- 最大K乘积
- 显示函数调用栈
- linux下查看端口的占用情况
- SQLite dos下查看表中记录的方法
- 获取Android媒体库中的音乐文件
- 简单的ListView上拉加载