在做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
相关推荐
在Android平台上,开发一款音乐播放器应用是一项常见的任务,它涉及到多媒体处理、用户界面设计以及与设备硬件的交互等多个方面。本项目是一个基于Android Studio的音乐播放器APP源码,对于学习Android应用开发,...
- **AsyncTask**: 用于处理耗时操作,如加载音乐文件信息、网络请求等,避免阻塞UI线程。 - **Handler/Looper**: 实现UI更新和后台任务之间的通信。 **6. 网络与API集成** - **HTTP请求库**: 如OkHttp、Retrofit等...
在Android平台上,开发一个简易本地音乐播放器是一项常见的任务,对于初学者来说是学习Android音频处理和用户界面设计的良好实践。这个"Android简易本地音乐播放器源码"提供了实现这样一个功能的基本框架。以下是对...
【Android仿QQ音乐播放器源码】是一个专为学习和参考设计的项目,它提供了实现一个类似QQ音乐应用的播放器功能的详细代码。这个源码可以帮助开发者深入了解Android平台上音频播放、界面设计以及多媒体管理等方面的...
这是一个关于在Android平台上开发在线音乐播放器应用的项目源码。这个项目可以帮助开发者理解如何将Android SDK与网络服务集成,实现在移动设备上流畅地播放流媒体音乐。下面,我们将详细探讨这个项目涉及的主要知识...
11. **异步处理**:由于音乐播放是耗时操作,应避免阻塞主线程,可以使用AsyncTask或者IntentService来处理。 12. **音乐流播放**:如果支持在线音乐,还需要处理网络请求和流媒体播放,可能涉及HttpURLConnection...
【Android仿酷狗音乐播放器】项目是一个针对Android平台开发的音乐播放应用程序,它旨在模仿酷狗音乐的界面设计和功能特性,为用户提供一个类似酷狗的音乐体验。这个项目的核心在于实现音频播放、音乐库管理、播放...
在Android平台上开发一个简单的音乐播放器,涉及到许多关键知识点,包括多媒体处理、用户界面设计、音频流播放以及服务管理等。下面将详细讲解这些技术点。 1. **多媒体框架(Media Framework)**:Android系统提供...
在Android平台上,开发一款音乐播放器是一个常见的任务,它涵盖了多个关键知识点,这些知识点对于深入理解和实践Android应用开发至关重要。本实例提供了一个完整的音乐播放器的源码和说明文档,让我们一起探讨其中...
【Android 音乐播放器开发详解】 在移动设备上,音乐播放器是用户日常使用的重要应用之一。本项目“安卓大作业之音乐播放器”旨在通过整合网络上的部分源码,构建一个基础但功能完善的音乐播放器。在这个过程中,...
通过研究这个开源的Android音乐播放器项目,开发者可以学习到Android应用开发的核心技术和最佳实践,包括多媒体处理、服务与广播接收器、数据库操作、UI设计等多个方面,这对于提升个人技能和开发实际项目都非常有...
总结,这个“在线音乐播放器完整项目”覆盖了Android开发的多个核心知识点,包括UI设计、网络通信、音频处理、数据存储、权限管理、线程调度以及服务与通知的使用。对于想要学习Android音乐播放器开发的开发者来说,...
在Android平台上开发一个简单的音乐播放器,涉及到许多关键知识点,包括UI设计、音频处理、多媒体框架的使用以及一些额外的功能实现。以下是对这些知识点的详细解释: 1. **UI设计**: - 使用Android Studio提供的...
在Android平台上,开发一款音乐播放器和视频播放器是相当常见的任务,这涉及到对多媒体文件的处理、用户界面设计以及Android系统服务的利用。本文将深入探讨如何基于Android Studio和Ubuntu操作系统来创建这样一个...
在Android开发领域,使用Android Studio制作一款简单的音乐播放器是一个常见的练习项目,它能帮助开发者熟悉Android系统的多媒体处理、UI设计以及数据存储等基础知识。在这个项目中,我们将深入探讨以下几个关键知识...
该android音乐播放器支持以下功能: 1.本地音乐的播放控制; 2.音乐的收藏和取消收藏; 3.网络音乐的搜索和下载; 4.下载的控制-暂停/继续/删除/断点下载; 5.音乐列表刷新-下载完成后刷新可以看到新增歌曲; 6.播放...
【Android音乐播放器源码】是一个专为Android平台设计的音乐播放应用的源代码,它提供了从本地存储中选择和播放音乐的功能。这个项目对于Android开发者来说是一个宝贵的资源,可以帮助他们学习如何在Android环境中...
这个简单音乐播放器的基础功能包括播放、暂停、停止以及切换歌曲等,是学习Android音频处理和用户界面设计的良好起点。 在Android平台上开发音乐播放器,首先需要理解的是Android的多媒体框架,这是实现音乐播放的...
- **Activity生命周期**:音乐播放器的核心是Activity,它负责展示用户界面并处理用户交互。了解Activity的启动、暂停、恢复和销毁等生命周期状态至关重要。 - **布局设计**:使用XML进行UI设计,包括ListView、...
在安卓平台上,开发一款音乐播放器应用是一项技术性较强的任务,涉及到多媒体处理、用户界面设计、数据管理等多个方面的知识。本资源"安卓remusic仿网易音乐播放器源代码"提供了一个很好的学习样本,帮助开发者了解...