Android4 Service

Service和act一样,表示可执行程序,单Service是不直接与用户进行交互的,它是一种后台运行组件,如后台数据计算,后台播放音乐等。

建立Service有两种方法:

一:startService()和stopService()

1

定义Service类:

即在activity通目录下建立一个Service.java文件:该文件代码如下:

package com.example.survice8;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class Service1 extends Service {

@Override
public void onCreate(){
// TODO Auto-generated method stub
super.onCreate();
System.out.println("onCreate()");
//player=MediaPlayer.create(this,R.drawable.aa);

}

@Override
public int onStartCommand(Intent intent,int flags,int startId){
// TODO Auto-generated method stub
System.out.println("onStartCommand()");
return super.onStartCommand(intent,flags,startId);
}

@Override
public void onDestroy(){
// TODO Auto-generated method stub
System.out.println("onDestroy()");
super.onDestroy();
}

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

}

2:在AndroidManifest.xml下配置Service,与act类似位于app中间。

代码:

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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:name="Service1"></service>
</application>

3:

在act中绑定按钮,按下按钮后执行startService和stopService方法,这两个方法是需要自己生命的,利用Intent。

代码如下:

package com.example.survice8;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View V){
System.out.println("11111");
startService();

}
});

button2.setOnClickListener(new OnClickListener(){
public void onClick(View V){
System.out.println("22222");
stopService();
}
});

}
protected void stopService() {
// TODO Auto-generated method stub
Intent intent =new Intent(this,Service1.class);
stopService(intent);
}

protected void startService() {
// TODO Auto-generated method stub
Intent intent =new Intent(this,Service1.class);
startService(intent);
}
}       

二:bindService和unbindService

时间: 2024-10-13 17:38:24

Android4 Service的相关文章

android4大组件之Service服务

www.android-doc.com:中文帮助文档(建议不要用,实在看不懂英文的可以稍微看一下) 1.Service:运行于后台的一个组件,用来运行适合运行在后台的代码,服务是没有前台界面的activity 2.进程的优先级: *前台进程:拥有一个正在与用户交互的activity(onResume)的进程 *可见进程:拥有一个可见但是没有焦点的activity(onPause方法被调用) *服务进程:拥有一个通过startService方法启动的服务(系统实在内容不足时会杀掉该进程,但是系统内

android4.4组件分析--service组件

6       Service 6.1            service介绍 6.1.1.            基本介绍 Service是Android四大组件之一(其余的是activity.BroadcastReceiver.Content Provider). Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行.另外,一个组件能够绑定到一个service并与之交互

android4.4组件分析--service组件-bindService源代码分析

6.1.1.    bindService 由于有前面分析startService的代码实现过程,则对于bindService的代码分析就不用那么具体介绍,在介绍流程的同一时候更关注一些细节上的部分. 首先,bindService也是通过 ContextWrapper.bindService,再到ContextImpl的bindService,然后是bindServiceCommon,须要注意的是,传入的ServiceConnection被转换成IServiceConnection类型, pri

android4.4组件分析--service组件-bindService源码分析

6.1.1.    bindService 因为有前面分析startService的代码实现过程,则对于bindService的代码分析就不用那么详细介绍,在介绍流程的同时更关注一些细节上的部分. 首先,bindService也是通过 ContextWrapper.bindService,再到ContextImpl的bindService,然后是bindServiceCommon,需要注意的是,传入的ServiceConnection被转换成IServiceConnection类型, priva

android学习十八(Service服务的基本用法)

定义一个服务 在项目中定义一个服务,新建一个ServiceTest项目,然后在这个项目中新增一个名为MyService的类,并让它继承自Service,完成后的代码如下所示: package com.jack.servicetest; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyService extends Service { @Over

Android4.4的zygote进程(下)

3.2.4启动Android系统服务——startSystemServer() 接下来就是启动Android的重头戏了,此时ZygoteInit的main()函数会调用startSystemServer(),该函数用于启动整个Android系统的系统服务.其大体做法是先fork一个子进程,然后在子进程中做一些初始化动作,继而执行SystemServer类的main()静态函数.需要注意的是,startSystemServer()并不是在函数体内直接调用Java类的main()函数的,而是通过抛异

Android Web Service学习总结(一)

最近学习android平台调用webWebService,学习了一篇不错的博客(http://blog.csdn.net/lyq8479/article/details/6428288),可惜是2011年时的方法,而不适合现在android4.0之后的android版本,所以通过一番学习和研究,总结如下. web Service简介 通俗的理解:通过使用WebService,我们能够像调用本地方法一样去调用远程服务器上的方法.我们并不需要关心远程的那个方法是Java写的,还是PHP或C#写的:我

Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: [email protected] 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享. 1.以解码器实例作为切入点 status_t AwesomePlayer::initVideoDecoder(uint32_t flags) { ATRACE_CALL(); ...... ALOG

Android4.4的zygote进程(上)

1背景 前些天为了在科室做培训,我基于Android 4.4重新整理了一份关于zygote的文档.从技术的角度看,这几年zygote并没有出现什么大的变化,所以如果有人以前研究过zygote,应该不会对本文写的内容感到陌生. 2zygote进程的描述 在Android中,zygote是整个系统创建新进程的核心装置.从字面上看,zygote是受精卵的意思,它的主要工作就是进行细胞分裂. zygote进程在内部会先启动Dalvik虚拟机,继而加载一些必要的系统资源和系统类,最后进入一种监听状态.在后