Android Service
2015-09-02 16:41
435 查看
Service是在后台运行,不可交互的一个东西。不能自己运行,需通过activity或者其他Context对象来调用。
两种启动方式:
Context.startService();
Context.bindService();
另外需说明的是,如果在Service的onCreate或者onStart做一些耗时的动作,最好是启动一个新线程来运行这个Service,
因为,在主线程中运行,会影响到程序的UI操作或者阻塞主线程中得其他事情。
创建继承Service子类Myservice,并重写几个方法。
package com.example.smsreciver;
import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
public class Myservice
extends Service {
@Override
public IBinder onBind(Intent arg0) {
//
TODO Auto-generated method stub
Log.i("",
"onBind");
return
null;
}
@Override
public
void onCreate() {
//
TODO Auto-generated method stub
Log.i("",
"onCreate");
super.onCreate();
}
@Override
public
void onStart(Intent intent, int startId) {
//
TODO Auto-generated method stub
super.onStart(intent, startId);
Log.i("",
"onStart");
}
@Override
public
void onDestroy() {
Log.i("",
"onDestroy");
}
@Override
public
int onStartCommand(Intent intent,
int flags, int startId) {
Log.i("",
this.toString() +
" ServiceDemo onStartCommand");
return
super.onStartCommand(intent, flags, startId);
}
}
在AndroidManifest.xml中添加Service的引用。
<service
android:name="com.example.smsreciver.Myservice"
android:enabled="true">
</service>
在activity中启动service
Intent intent = new Intent(MainActivity.this, Myservice.class);
MainActivity.this.startService(intent);
两种启动方式:
Context.startService();
Context.bindService();
另外需说明的是,如果在Service的onCreate或者onStart做一些耗时的动作,最好是启动一个新线程来运行这个Service,
因为,在主线程中运行,会影响到程序的UI操作或者阻塞主线程中得其他事情。
创建继承Service子类Myservice,并重写几个方法。
package com.example.smsreciver;
import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
public class Myservice
extends Service {
@Override
public IBinder onBind(Intent arg0) {
//
TODO Auto-generated method stub
Log.i("",
"onBind");
return
null;
}
@Override
public
void onCreate() {
//
TODO Auto-generated method stub
Log.i("",
"onCreate");
super.onCreate();
}
@Override
public
void onStart(Intent intent, int startId) {
//
TODO Auto-generated method stub
super.onStart(intent, startId);
Log.i("",
"onStart");
}
@Override
public
void onDestroy() {
Log.i("",
"onDestroy");
}
@Override
public
int onStartCommand(Intent intent,
int flags, int startId) {
Log.i("",
this.toString() +
" ServiceDemo onStartCommand");
return
super.onStartCommand(intent, flags, startId);
}
}
在AndroidManifest.xml中添加Service的引用。
<service
android:name="com.example.smsreciver.Myservice"
android:enabled="true">
</service>
在activity中启动service
Intent intent = new Intent(MainActivity.this, Myservice.class);
MainActivity.this.startService(intent);
相关文章推荐
- Android IPC进程间通讯机制
- android之定时器AlarmManager
- axis备忘
- Windows XP Service Pack 3 RC1 v.3244 winxp补丁3 提供下载
- Run As Service runassrv.exe 详细参数第1/2页
- 安装MySQL在最后的start service停住了解决方法
- android使用Messenger绑定Service的多种实现方法
- asp.net Web Service 接口大量数据传输解决方案
- Silverlight中动态获取Web Service地址
- android调用web service(cxf)实例应用详解
- 在Android中 获取正在运行的Service 实例
- ASP.NET State service状态服务的问题解决方法
- 卸载ZkeysPHP 后iis网站出现Service Unavailable 解决办法
- IIS Admin Service 服务因 2149647636 (0x80210514) 服务性错误而停止
- Service Temporarily Unavailable的503错误是怎么回事?
- android教程之service使用方法示例详解
- SSB(SQLservice Service Broker) 入门实例介绍
- Android提高之Service用法实例解析
- Android实现Service重启的方法