Service基础知识点
来源:互联网 发布:人工智能龙头股票 编辑:程序博客网 时间:2024/05/29 17:28
1、Activity:
import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.view.View;public class DemoActivity extends Activity { /** Called when the activity is first created. */private Intent intent ;private MyServiceConnection conn;private IService ibinder; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); intent = new Intent(this,MyService.class); conn = new MyServiceConnection(); } /** * 希望一个服务一直存在,并且能够调用服务里面的方法。 * 启动服务 * 先通过startService()的方式来启动服务,再通过onBind()的方式去绑定服务。 * * onCreate() --> onStart() -->onBind() * * * 停止服务: * 1: 先unbindService()来解绑服务,再通过stopService()来停止服务 * onUnbind() ---> onDestory() * * 2:先stopService()来停止服务,再通过unbindService()来解绑服务 * * onUnbind() ---> onDestory() * * * 通过startService()方式启动的服务,必须通过调用stopService()才能停止服务。 * 如果服务还有绑定对象,那么一个服务是不会被停止的。 * * * 怎么去调用服务里面方法。1 必须通过bindService()才能和服务进行通讯。打开了一个ServiceConnection连接。服务给我们返回了一个IBinder对象 */ public void startservice(View v){ startService(intent); } public void stopservice(View v){ stopService(intent); } /** * 一个访问者只能和服务绑定一次,多次绑定那么服务里面的onBind()方法不会多次被调用 */ public void bindservice(View v){ bindService(intent, conn, BIND_AUTO_CREATE); } /** * 一旦访问者和服务断开了连接,如果再次解绑服务,会出现异常 */ public void unbindservice(View v){ unbindService(conn); } private final class MyServiceConnection implements ServiceConnection{public void onServiceConnected(ComponentName name, IBinder service) {// TODO Auto-generated method stubibinder = (IService) service;}public void onServiceDisconnected(ComponentName name) {// TODO Auto-generated method stub} } public void call(View v){ ibinder.invoke(); }}
2、MyService
import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;import android.util.Log;public class MyService extends Service {private IBinder ibinder = new MyBinder();@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();Log.i("i", " onCreate()");}@Overridepublic void onStart(Intent intent, int startId) {// TODO Auto-generated method stubsuper.onStart(intent, startId);Log.i("i", " onStart()");}@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubLog.i("i", " onBind()");return ibinder;}@Overridepublic boolean onUnbind(Intent intent) {// TODO Auto-generated method stubLog.i("i", " onUnbind()");return super.onUnbind(intent);}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();Log.i("i", " onDestroy()");}private final class MyBinder extends Binder implements IService{public void invoke() {// TODO Auto-generated method stubcallme();}}private void callme(){Log.i("i", "服务里面的方式被调用了");}}
3、IService
public interface IService {public void invoke();}
4、最后别忘了在AndroidManifest.xml中注册上Service
- Service基础知识点
- XML与Web Service基础知识点
- Service知识点
- android service(远程service) 知识点
- Service知识点之远程Service
- Web Service相关知识点
- web service知识点
- Android Service知识点总结
- Service知识点总结
- android service(本地) 知识点
- Service的一些知识点
- Web service知识点笔记
- Android Service 知识点总结
- Android知识点之service
- Service知识点整理
- 3.service知识点总结
- Service的各种知识点
- Service知识点总结
- REDHAT下载网站
- hdu 1723 Distribute Message
- NYOJ 2 括号配对问题
- 【总结】android程序不显示图标,开机自动启动?我来告诉你
- 十度好友问题
- Service基础知识点
- 111111
- lightoj 1205 数位DP
- hdu 3681 Prison Break (旅行商问题)
- C++智能指针auto_ptr
- UVa 1423 Guess (拓扑排序)
- cocos2dx 2.1.4 shader解析-1
- CAP理论十二年回顾:"规则"变了
- 使用SGD(Stochastic Gradient Descent)进行大规模机器学习