- 浏览: 281941 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jasonking412:
鄙视抄袭,都TMD一样的。
Openfire red5.war下载已经配置 -
xhg19901120:
有没有下载地址啊
【转】Android 多级菜单 -
yxl2005play:
为什么是404?博主,求解
Openfire red5.war下载已经配置 -
tan2416:
回复看看。。。。。
实现在popwindow中展示listview列表 -
liufeng7600:
你好,求教: 我可不可以在pc上用web浏览器访问 Andr ...
android中实现JavaScript与Java之间实现互相调用
Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。Service 可以分为有无限生命和有限生命两种。
特别需要注意的是Service跟Activities是不同 的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用 startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service。
启动一个Service的过程如下:
context.startService() ->onCreate()- >onStart()->Service running
其中onCreate()可以进行一些服务的初始化工作,onStart()则启动服务。
停止一个Service的过程如下:
context.stopService() | ->onDestroy() ->Service stop
接下来的实例是一个利用后台服务播放音乐的小例子,点击start运行服务,点击stop停止服务。
程序运行界面:
代码:
定义服务,MyService.java
- package com.example;
- import android.app.Service;
- import android.content.Intent;
- import android.media.MediaPlayer;
- import android.os.IBinder;
- import android.util.Log;
- import android.widget.Toast;
- public class MyService extends Service {
- private static final String TAG = "MyService" ;
- MediaPlayer player;
- @Override
- public IBinder onBind(Intent intent) {
- return null ;
- }
- @Override
- public void onCreate() {
- Toast.makeText(this , "My Service Created" , Toast.LENGTH_LONG).show();
- Log.d(TAG, "onCreate" );
- player = MediaPlayer.create(this , R.raw.braincandy); //运行例子是,需要替换音乐的名称
- player.setLooping(false ); // Set looping
- }
- @Override
- public void onDestroy() {
- Toast.makeText(this , "My Service Stopped" , Toast.LENGTH_LONG).show();
- Log.d(TAG, "onDestroy" );
- player.stop();
- }
- @Override
- public void onStart(Intent intent, int startid) {
- Toast.makeText(this , "My Service Started" , Toast.LENGTH_LONG).show();
- Log.d(TAG, "onStart" );
- player.start();
- }
- }
除此之外还要在Manifest里面声明服务:
- <? xml version = "1.0" encoding = "utf-8" ?>
- < manifest xmlns:android = "http://schemas.android.com/apk/res/android"
- package = "com.example" android:versionCode = "1" android:versionName = "1.0" >
- < application android:icon = "@drawable/icon" android:label = "@string/app_name" >
- < activity android:name = ".ServicesDemo" android:label = "@string/app_name" >
- < intent-filter >
- < action android:name = "android.intent.action.MAIN" />
- < category android:name = "android.intent.category.LAUNCHER" />
- </ intent-filter >
- </ activity >
- < service android:enabled = "true" android:name = ".MyService" />
- </ application >
- < uses-sdk android:minSdkVersion = "3" />
- </ manifest >
定义Activity,ServicesDemo.java
- package com.example;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class ServicesDemo extends Activity implements OnClickListener {
- private static final String TAG = "ServicesDemo" ;
- Button buttonStart, buttonStop;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- buttonStart = (Button) findViewById(R.id.buttonStart);
- buttonStop = (Button) findViewById(R.id.buttonStop);
- buttonStart.setOnClickListener(this );
- buttonStop.setOnClickListener(this );
- }
- public void onClick(View src) {
- switch (src.getId()) {
- case R.id.buttonStart:
- Log.d(TAG, "onClick: starting srvice" );
- startService(new Intent( this , MyService. class ));
- break ;
- case R.id.buttonStop:
- Log.d(TAG, "onClick: stopping srvice" );
- stopService(new Intent( this , MyService. class ));
- break ;
- }
- }
-
}
发表评论
-
singleTop和singleTask有什么区别?(活动 Activity 四种加载模式)
2013-03-22 17:50 1459singleTop要求如果创建intent的时候栈顶已经有要 ... -
onCreateOptionsMenu和onPrepareOptionsMenu的差別在哪呢?
2012-09-17 16:25 1614在做菜单的功能,发现 ... -
android状态栏中多个通知冲突的问题
2012-09-11 17:49 6458网上看到的解决办法: 如果用相同的通知id, 该怎么 ... -
Anroid 异常:is not valid; is your activity running?
2012-08-29 11:23 1196是由于有activity时依附于另一个activity的, ... -
Android 如何让EditText不自动获取焦点
2012-08-15 11:42 3691在项目中,一进入一个页面, EditText默认就会自动获取焦 ... -
Animation
2012-07-31 23:51 852前面定义旋转,移动,缩放到什么程度, 后面是轴承点,根据这个点 ... -
删除android ScrollView边界阴影方法
2012-07-19 10:26 1344XML文件中添加以下方法: android:fadin ... -
Android的webview加载本地html、本apk内html和远程URL
2012-07-19 09:56 1710... -
如何在mac中创建android adb 环境
2012-05-03 23:31 1786Create an environment variable ... -
AlarmManager详细讲解
2012-04-21 23:33 1297AlarmManager的作用文档中的解释是:在特定的时刻为我 ... -
用Android代码实现打开USB调试
2012-03-20 17:52 9184打开Android手机的USB调试对于使用豌豆夹、调试程序等来 ... -
android ROM RAM 内部存储 系统存储 系统缓存区别
2012-03-16 14:58 5355内部存储┐ 系统存储├─物理位置是位于手机内部的非易失性存储 ... -
Android 读取MCC, MNC
2012-03-12 13:46 13350TelephonyManager telManager = ( ... -
Android 动画详解
2012-03-09 14:09 3754Tween动画又称“补间动画”、“中间动画”,这并不重要,就好 ... -
Region.Op
2012-02-29 17:37 983//INTERSECT 取两者交集,默认的方式 //DIF ... -
Eclipse中LogCat突然停止工作的解决
2012-01-18 17:34 1769... -
sdcard
2011-12-29 13:28 1058把文件放入SD卡 使用Activity的o ... -
Android 中自定义属性(attr.xml,TypedArray)的使用!
2011-10-07 17:39 1068在xml 文件里定义控件的属性,我们已经习惯了android ... -
Android 中自定义View的应用.
2011-10-07 17:38 854大家好我们今天的教程 ... -
android Canvas类介绍
2011-09-23 11:01 1379package com.yarin.android.E ...
相关推荐
一篇对于android service的详细总结
本示例"Android Service大总结Demo"将深入探讨Service的使用,包括如何启动、绑定服务,以及实现跨进程间的通信。我们将详细讲解以下几个关键知识点: 1. **Service的基本概念**: - Service是一种没有用户界面的...
本篇文章将深入探讨如何在Android中使用Service。 一、Service的基本概念 Service是Android系统中的一个特殊组件,它可以在后台运行,不与用户界面直接交互。Service可以启动(Start)或绑定(Bind),两种方式各有...
总结来说,`Service`和`Activity`之间的数据传递可以通过Intent参数、BroadcastReceiver或Binder实现。BroadcastReceiver适用于不频繁的数据交换,而Binder适合需要频繁交互且在同一个进程的情况。开发者应根据具体...
总结起来,`Start Service`在Android中主要用于执行后台任务,它不会直接与启动它的组件进行交互,而是独立运行。理解并正确使用`Start Service`对于开发能够后台运行的应用至关重要。在实际项目中,根据需求选择...
总结起来,Android Service提供了多种启动方式,根据应用场景选择合适的方式可以优化性能和用户体验。启动方式适用于无需频繁交互的后台任务,绑定方式适用于需要与Service紧密交互的情况,线程方式确保Service不会...
总结一下,Android的Service组件用于执行后台任务,可以通过startService()和stopService()控制其生命周期。Service与外部通信依赖于Binder和IBinder,通过实现IBinder接口,Service可以暴露自己的方法供其他组件...
总结来说,Android Service根据其启动模式和使用场景有不同的行为和生命周期管理。开发者需要根据实际需求选择合适的启动模式,并注意系统对后台服务的限制。在设计Service时,应尽量减少对CPU和内存的占用,避免...
总结来说,“android service”是Android开发中的核心概念,它支持后台运行,是实现持久化操作的关键。通过深入学习Service的源码,结合各种工具进行调试和分析,开发者可以更高效地利用Service实现复杂的功能,同时...
总结来说,"Android Service Demo"是一个学习如何在Android应用中实现后台服务的实例。它涵盖了Service的创建、启动、绑定和生命周期管理,对于理解Android服务的工作原理及其在实际应用中的使用非常有帮助。通过...
在Android应用开发中,Service和Activity是两个非常重要的组件,它们各自扮演着不同的角色。Service主要负责在后台执行长时间运行的任务,而Activity则用于与用户交互。本示例"Android Service与Activity交互"旨在...
总结来说,`startService()`是Android中启动服务的一种方式,适用于执行非交互的后台任务。在使用时,需要正确处理Service的生命周期方法,确保服务在必要时启动和停止,并遵循Android的后台服务最佳实践,以提供...
总结起来,Android的Service和Timer是强大的工具,它们可以帮助开发者实现在后台的定时任务。正确地使用它们,可以提高应用的功能性和用户体验。然而,需要注意的是,频繁的后台操作可能会消耗较多的系统资源,因此...
总结起来,理解并掌握Service的启动方式和生命周期管理是Android开发中的重要环节。在实际应用中,根据需求选择合适的启动模式,并确保服务的运行效率和用户体验。通过`com.njupt.zhb.MusicPlay`这样的练习,可以...
总结来说,要在Android Service中弹出对话框,需要创建一个兼容Service的Context,使用新线程或Handler来显示Dialog,并根据Service的生命周期进行适当的管理。对于复杂的需求,可以考虑使用DialogFragment。同时,...
总结一下,`startService()`是Android中启动服务的关键方法,适用于需要后台长期运行的任务。理解并正确使用服务可以极大地增强你的应用功能,但也要注意资源管理,避免过度消耗设备资源。通过学习和实践`Android_...
总结来说,这个项目通过`Notification`、`Service`和`BroadcastReceiver`实现了后台文件下载并实时通知用户的功能。`Notification`提供用户界面反馈,`Service`负责文件下载,`BroadcastReceiver`监听并处理下载状态...
总结起来,Start Service是Android中用于启动后台任务的重要工具,正确理解和使用它可以提升应用的用户体验,但同时也需要注意资源管理和生命周期管理,以保证应用的稳定性和效率。在`ServiceDemo`项目中,我们可以...
总结起来,Android中的Bound Service是一种允许应用程序组件与服务进行交互的服务类型,通过`IBinder`接口进行通信,提供了一种更加灵活且高效的服务使用方式。理解并熟练掌握Bound Service的实现和使用,对于开发...
总结来说,Android远程服务是实现跨进程通信的重要手段,通过AIDL和Binder机制,我们可以构建出高效、稳定的服务架构。正确理解和运用远程服务,可以为Android应用开发带来更大的灵活性和扩展性。在实际开发中,根据...