`
come_for_dream
  • 浏览: 120979 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Andriod耗时操作的处理(音乐播放器欢迎界面)

 
阅读更多

 

      在做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 Studio开发的音乐播放器APP源码Android 音乐播放器源码

    在Android平台上,开发一款音乐播放器应用是一项常见的任务,它涉及到多媒体处理、用户界面设计以及与设备硬件的交互等多个方面。本项目是一个基于Android Studio的音乐播放器APP源码,对于学习Android应用开发,...

    Android 界面华丽的音乐播放器源码

    - **AsyncTask**: 用于处理耗时操作,如加载音乐文件信息、网络请求等,避免阻塞UI线程。 - **Handler/Looper**: 实现UI更新和后台任务之间的通信。 **6. 网络与API集成** - **HTTP请求库**: 如OkHttp、Retrofit等...

    Android简易本地音乐播放器源码,基于Android的简易本地音乐播放器源码

    在Android平台上,开发一个简易本地音乐播放器是一项常见的任务,对于初学者来说是学习Android音频处理和用户界面设计的良好实践。这个"Android简易本地音乐播放器源码"提供了实现这样一个功能的基本框架。以下是对...

    Android仿QQ音乐播放器源码.zip

    【Android仿QQ音乐播放器源码】是一个专为学习和参考设计的项目,它提供了实现一个类似QQ音乐应用的播放器功能的详细代码。这个源码可以帮助开发者深入了解Android平台上音频播放、界面设计以及多媒体管理等方面的...

    基于Android实现的在线音乐播放器程序源码.zip

    这是一个关于在Android平台上开发在线音乐播放器应用的项目源码。这个项目可以帮助开发者理解如何将Android SDK与网络服务集成,实现在移动设备上流畅地播放流媒体音乐。下面,我们将详细探讨这个项目涉及的主要知识...

    _基于Android平台的手机音乐播放器_代码

    11. **异步处理**:由于音乐播放是耗时操作,应避免阻塞主线程,可以使用AsyncTask或者IntentService来处理。 12. **音乐流播放**:如果支持在线音乐,还需要处理网络请求和流媒体播放,可能涉及HttpURLConnection...

    Android仿酷狗音乐播放器

    【Android仿酷狗音乐播放器】项目是一个针对Android平台开发的音乐播放应用程序,它旨在模仿酷狗音乐的界面设计和功能特性,为用户提供一个类似酷狗的音乐体验。这个项目的核心在于实现音频播放、音乐库管理、播放...

    android简单音乐播放器

    在Android平台上开发一个简单的音乐播放器,涉及到许多关键知识点,包括多媒体处理、用户界面设计、音频流播放以及服务管理等。下面将详细讲解这些技术点。 1. **多媒体框架(Media Framework)**:Android系统提供...

    android开发实例:音乐播放器 内含源码及说明文档

    在Android平台上,开发一款音乐播放器是一个常见的任务,它涵盖了多个关键知识点,这些知识点对于深入理解和实践Android应用开发至关重要。本实例提供了一个完整的音乐播放器的源码和说明文档,让我们一起探讨其中...

    安卓大作业之音乐播放器

    【Android 音乐播放器开发详解】 在移动设备上,音乐播放器是用户日常使用的重要应用之一。本项目“安卓大作业之音乐播放器”旨在通过整合网络上的部分源码,构建一个基础但功能完善的音乐播放器。在这个过程中,...

    android音乐播放器源代码

    通过研究这个开源的Android音乐播放器项目,开发者可以学习到Android应用开发的核心技术和最佳实践,包括多媒体处理、服务与广播接收器、数据库操作、UI设计等多个方面,这对于提升个人技能和开发实际项目都非常有...

    Android代码-在线音乐播放器完整项目.zip

    总结,这个“在线音乐播放器完整项目”覆盖了Android开发的多个核心知识点,包括UI设计、网络通信、音频处理、数据存储、权限管理、线程调度以及服务与通知的使用。对于想要学习Android音乐播放器开发的开发者来说,...

    android简单的音乐播放器

    在Android平台上开发一个简单的音乐播放器,涉及到许多关键知识点,包括UI设计、音频处理、多媒体框架的使用以及一些额外的功能实现。以下是对这些知识点的详细解释: 1. **UI设计**: - 使用Android Studio提供的...

    Android 音乐播放器+视频播放器

    在Android平台上,开发一款音乐播放器和视频播放器是相当常见的任务,这涉及到对多媒体文件的处理、用户界面设计以及Android系统服务的利用。本文将深入探讨如何基于Android Studio和Ubuntu操作系统来创建这样一个...

    Android Atudio 制作简单音乐播放器

    在Android开发领域,使用Android Studio制作一款简单的音乐播放器是一个常见的练习项目,它能帮助开发者熟悉Android系统的多媒体处理、UI设计以及数据存储等基础知识。在这个项目中,我们将深入探讨以下几个关键知识...

    Android网络音乐播放器 源码下载

    该android音乐播放器支持以下功能: 1.本地音乐的播放控制; 2.音乐的收藏和取消收藏; 3.网络音乐的搜索和下载; 4.下载的控制-暂停/继续/删除/断点下载; 5.音乐列表刷新-下载完成后刷新可以看到新增歌曲; 6.播放...

    Android 音乐播放器源码.zip

    【Android音乐播放器源码】是一个专为Android平台设计的音乐播放应用的源代码,它提供了从本地存储中选择和播放音乐的功能。这个项目对于Android开发者来说是一个宝贵的资源,可以帮助他们学习如何在Android环境中...

    android音乐播放器

    这个简单音乐播放器的基础功能包括播放、暂停、停止以及切换歌曲等,是学习Android音频处理和用户界面设计的良好起点。 在Android平台上开发音乐播放器,首先需要理解的是Android的多媒体框架,这是实现音乐播放的...

    android在线音乐播放器.zip

    - **Activity生命周期**:音乐播放器的核心是Activity,它负责展示用户界面并处理用户交互。了解Activity的启动、暂停、恢复和销毁等生命周期状态至关重要。 - **布局设计**:使用XML进行UI设计,包括ListView、...

    安卓remusic仿网易音乐播放器源代码

    在安卓平台上,开发一款音乐播放器应用是一项技术性较强的任务,涉及到多媒体处理、用户界面设计、数据管理等多个方面的知识。本资源"安卓remusic仿网易音乐播放器源代码"提供了一个很好的学习样本,帮助开发者了解...

Global site tag (gtag.js) - Google Analytics