- 浏览: 760765 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (139)
- 玩转Android (48)
- Android创意美工 (0)
- Android杂谈 (23)
- Android实例练习 (2)
- Android ROM研究 (5)
- Android NDK开发指南 (5)
- Android NDK (0)
- Android Tips (3)
- Windows Phone 7 (5)
- iPhone (0)
- HTML5学习室 (0)
- JAVA (9)
- SSH+ibatis (8)
- PHP (0)
- IT生活 (1)
- linux (2)
- C (4)
- C++ (1)
- web 前端 (1)
- 云计算 (0)
- 设计模式 (0)
- C# (2)
- 其他 (1)
- 数据结构 (5)
- Web开发 (10)
- 数据库 (3)
- 搜索引擎 (0)
- Go语言 (0)
最新评论
-
wi100sh:
多谢分享~
玩转Android---UI篇---ImageButton(带图标的按钮) -
zhanghaichang:
好文章的。
高性能web开发技术(一) -
yingang:
引用classes.dex.dex2jar.jar 拖入 j ...
Andorid杂谈---Apk文件的反编译 -
扶摇诺:
讲解的简明易懂,多谢啦!
玩转Android---UI篇---LinearLayout(线性布局) -
a13429921973:
更为详细的图文介绍,可参考这个http://blog.csdn ...
Android ROM研究---CyanogenMod源代码下载及编译
Service是Andorid系统提供的四大组件之一,它的地位和Activity是并列的,只是使用的频率没有Activity高。Service就是运行于后台的一种服务程序,一般很少和用户交互,因此没有可视化界面。
定义一个Service类只要继承Service类即可,实现其生命周期中的方法就可以了,另外,一个定义好的Service组件必须要在AndoridManifest.xml文件中注册才能够使用。
Service有自己的生命周期,可以调用startService()启动一个Service或者使用bindService()来绑定一个service,还可以通过RPC(远程进程调用)机制来实现不同进程间Service的调用。
Service中定义了一系列和自身生命周期相关的方法:
onBind(Intent intent):是必须实现的一个方法,返回一个绑定的接口给Service。
onCreate():当Service第一次被创建时,由系统调用。
onStart(Intent intent,int startId):当通过startService()方法启动Service时,该方法被调用。
onDestroy():当Service不再使用,系统调用该方法。
实例如下:
MyService.java
/* * @author hualang */ package org.hualang.service; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class MyService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Log.i("SERVICE", "onBind................."); Toast.makeText(MyService.this, "onBind.................", Toast.LENGTH_LONG).show(); return null; } public void onCreate() { Log.i("SERVICE", "onCreate................"); Toast.makeText(MyService.this, "onCreate................", Toast.LENGTH_LONG).show(); } public void onStart(Intent intent,int startId) { Log.i("SERVICE", "onStart................."); Toast.makeText(MyService.this, "onStart.................", Toast.LENGTH_LONG).show(); } public void onDestroy() { Log.i("SERVICE", "onDestroy................."); Toast.makeText(MyService.this, "onDestroy.................", Toast.LENGTH_LONG).show(); } }
ServiceTest.java
/* * @author hualang */ package org.hualang.service; import android.app.Activity; import android.app.Service; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class ServiceTest extends Activity { /** Called when the activity is first created. */ private Button startService,stopService,bindService,unbindService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startService=(Button)findViewById(R.id.startButton); stopService=(Button)findViewById(R.id.stopButton); bindService=(Button)findViewById(R.id.bindButton); unbindService=(Button)findViewById(R.id.unbindButton); startService.setOnClickListener(startListener); stopService.setOnClickListener(stopListener); bindService.setOnClickListener(bindListener); unbindService.setOnClickListener(unbindListener); } private OnClickListener startListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction("org.hualang.service.action.MYSERVICE"); startService(intent); } }; private OnClickListener stopListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction("org.hualang.service.action.MYSERVICE"); stopService(intent); } }; private ServiceConnection conn=new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub Log.i("SERVICE", "connection success"); Toast.makeText(ServiceTest.this, "connection success", Toast.LENGTH_LONG).show(); } @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub Log.i("SERVICE", "connection success"); Toast.makeText(ServiceTest.this, "connection failure", Toast.LENGTH_LONG).show(); } }; private OnClickListener bindListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction("org.hualang.service.action.MYSERVICE"); bindService(intent,conn,Service.BIND_AUTO_CREATE); } }; private OnClickListener unbindListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction("org.hualang.service.action.MYSERVICE"); unbindService(conn); } }; }
在AndroidManifest.xml文件中注册Service如下
<service android:name="MyService"> <intent-filter> <action android:name="org.hualang.service.action.MYSERVICE"/> </intent-filter> </service>
main.xml布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:text="启动Service" android:id="@+id/startButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:text="停止Service" android:id="@+id/stopButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:text="绑定Service" android:id="@+id/bindButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:text="解除绑定unbindService" android:id="@+id/unbindButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
不解释,看运行结果就会明白
(1)当点击“启动Servcie”会先弹出"onCreate",然后弹出"onStart"的Toast,在LogCat中会看到先显示
的也是
onCreate
onStart
(2)点击“停止Service”按钮,会弹出onDestroy的Toast
LogCat中也会显示
onDestroy()
(3)点击"绑定Service"按钮,会弹出onCreate和onBind的Toast
LogCat中显示
onCreate
onBind
(4)点击“解除绑定Service”按钮,会弹出onDestroy的Toast,LogCat中也如此
下面是LogCat中显示的信息
评论
+1
发表评论
-
玩转Android---2D图形及动画---动画分析(Tween详细分析)
2011-09-26 21:59 2628在Android系统中提供了两种动画实现方式:一种是Tween ... -
玩转Android---2D图形及动画---图片处理
2011-09-26 13:08 1780在Android中很多地方都使 ... -
玩转Android--UI篇--PreferenceActivity(开启wifi和音乐等)
2011-09-01 11:57 4851本测试主要是为了测试PreferenceActivity的使用 ... -
玩转Android---2D图形及动画---Gif动画
2011-08-05 09:36 2217由于Gif本身就是动画,所以如果能够直接使用的话,会省去很多的 ... -
玩转Android---2D图形及动画---Frame动画
2011-08-01 20:53 2086Frame动画其实就是逐帧动画,用法也比Tween动画简单,只 ... -
玩转Android---2D图形及动画---Tween动画
2011-07-31 22:53 2180Android平台提供了两类动画,分别是Tween动画,和Fr ... -
玩转Android---2D图形及动画---View类使用
2011-07-30 23:39 2800由于游戏界面是由大量美工资源图片构成的,所以,在设计游戏界面的 ... -
玩转Android--组件篇---Handler的使用
2011-07-30 14:01 5359public class Handler ... -
玩转Android---UI篇---ZoomControls放大缩小图片
2011-07-27 13:03 7249ZoomControls控件是一个可以缩放但控件,效果如下图 ... -
玩转Android---组件篇---TextSwitcher
2011-07-25 09:21 2193还记得有一次淘宝的电话面试的时候问了我一个关于Android的 ... -
玩转Android---组件篇---AnalogClock,DigitalClock
2011-07-10 19:28 2940首先要说的是,这两个控件并不是经常的使用,但是如果程序需要的话 ... -
玩转Android---组件篇---SeekBar,RatingBar,Chronometer
2011-07-10 19:12 2855今天补充三个组件的使用,避免日后忘记。它们分别是 SeekB ... -
玩转Android---组件篇---Handler的使用(2)
2011-05-28 17:15 2821对于Handler来说,它和与它调用它的Activity是出于 ... -
玩转Android---组件篇---Handler的使用(1)
2011-05-28 15:37 2173在android中,有很多功能是不能放在onCreate或者o ... -
玩转Android---事件监听篇---第2篇
2011-05-27 10:30 5250事件监听篇---第二篇 下面是各种常用控件的事件监听的 ... -
玩转Android---事件监听篇---第1篇
2011-05-26 21:29 9933事件就是用户与UI界面的交互时所触发的操作。比如点击某一个按钮 ... -
玩转Android---组件篇---数据存储之SQLite
2011-04-17 17:05 8484Android中通过SQLite数据库引擎来实现结构化数据存储 ... -
玩转Android---组件篇---数据存储之File
2011-04-17 11:07 2046我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本 ... -
玩转Andorid---组件篇---数据存储之preference
2011-04-14 21:58 2303程序是数据的输入、处 ... -
玩转Android---组件篇---Broadcast Receiver(广播接收器)
2011-04-14 19:24 29346Braodcast Receiver顾名思义 ...
相关推荐
此外,Handler还可以与其他组件(如Service、BroadcastReceiver等)配合使用,实现更复杂的异步通信场景。 在实际开发中,常常结合AsyncTask、IntentService等其他异步处理方式一起使用,以应对各种复杂的线程同步...
### 玩转Android之-权限设置 在深入探讨Android中的权限设置之前,我们先来了解下Android系统是如何管理应用程序的权限的。Android系统通过权限(Permission)机制控制应用程序访问受保护的数据或执行可能对用户...
本教程将深入探讨如何“玩转Android服务”,并结合Java编程语言来实现服务的测试代码。 一、Android服务概述 Android服务主要用来执行在后台持续进行的任务,例如播放音乐、定时任务、网络通信等。服务并不提供用户...
开发者需要掌握Activity、Intent、Service、BroadcastReceiver等核心概念,以及如何使用XML布局文件和Android框架提供的各种服务。 总的来说,《Android嵌入式Linux终极实战》是一本全面的教程,涵盖了从底层硬件...
Android应用通常由Activity、Service、BroadcastReceiver、ContentProvider和Intent等组件构成。在这个项目中,Activity将是游戏的主要界面,负责处理用户交互。开发者需要利用Android的布局管理器如LinearLayout、...
在Android平台上实现这一游戏,需要深入理解Android系统的四大组件——Activity、Service、BroadcastReceiver和ContentProvider,并结合第三方服务如bmob的后台服务器。本文将详细解析这些知识点在构建Android版...
Android应用主要由四大组件构成:Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。在微信打灰机游戏中,Activity可能被用来处理用户界面和游戏交互,例如游戏...
* Android应用程序开发技术包括Java语言、XML布局文件、Activity、Service、Broadcast Receiver、Content Provider等组件。 * Android应用程序的生命周期包括创建、启动、运行、暂停、停止和销毁六个状态。 * MVC...
1. Android 环境下的游戏开发:Android 是 Google 开发的基于 Linux 平台的开源手机操作系统,具有四大基本组件:Activity、Service、Content Provider、BroadcastReceiver。 2. Eclipse 的使用:Eclipse 是一种可视...
《InteractiveStoryApp:玩转Android工具》 在移动应用开发领域,Android平台因其开源特性以及广泛的应用场景,一直是开发者们的热门选择。本文将深入探讨基于Java语言开发的InteractiveStoryApp,帮助你掌握如何...
一个Android应用通常由多个组件组成,包括Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。在这个拼图游戏中,主要涉及Activity,因为它负责用户界面和交互...
了解Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)和布局管理器(如LinearLayout、RelativeLayout、ConstraintLayout等)是必要的。 2. **用户界面设计** 源代码中的界面设计采用了...
【Android技术总结与面试题解析】 在Android领域,面试题往往涵盖了从基础知识到高级概念的广泛范围。以下是一些常见的Android技术知识点和面试问题的详细解答: 1. **ANR (Application Not Responding)**:当应用...
游戏的主要组件包括 Activity、Service、Content Provider 和 BroadcastReceiver。游戏的界面设计包括游戏菜单界面、游戏运行界面、帮助界面、排行榜界面和游戏结束界面。 游戏的规则是玩家通过点触虚拟键盘,左右...
在开发过程中,我们使用了 Android 四大基本组件分别是 Activity、Service、Content Provider 和 BroadcastReceiver。Activity 是一个单独的屏幕,可以显示一些控件也可以监听并处理用户的事件做出响应。Service 是...
- **Service**:服务是数据和服务功能的逻辑组合,可以是SIG定义的标准服务,也可以是自定义服务。每个服务可以包含一个或多个特性(Characteristic)。 - **Characteristic**:特性是数据的最小单位,包含一个值...
在Android中,这些可以通过Activity、Service、BroadcastReceiver等组件实现。在这个游戏中,我们需要一个主Activity来展示游戏画面,处理用户输入,并调用游戏逻辑进行得分计算。 4. **布局设计** 使用XML布局...
Android作为由Google开发的基于Linux平台的开源手机操作系统,为开发者提供了丰富的API以及四大基本组件——Activity(活动)、Service(服务)、Content Provider(内容提供者)和Broadcast Receiver(广播接收器)...