Android Service服务的生命周期
来源:互联网 发布:大学生怎么做淘宝店铺 编辑:程序博客网 时间:2024/05/16 14:47
与activity类似,服务也存在生命周期回调方法,你可以实现这些方法来监控服务的状态变化,并在适当的时机执行一些操作。 以下代码提纲展示了服务的每个生命周期回调方法:
public class ExampleService extends Service { int mStartMode; // 标识服务被杀死后的处理方式 IBinder mBinder; // 用于客户端绑定的接口 boolean mAllowRebind; // 标识是否使用onRebind @Override public void onCreate() { // 服务正被创建 } @Override public int onStartCommand(Intent intent, int flags, int startId) { // 服务正在启动,由startService()调用引发 return mStartMode; } @Override public IBinder onBind(Intent intent) { // 客户端用bindService()绑定服务 return mBinder; } @Override public boolean onUnbind(Intent intent) { // 所有的客户端都用unbindService()解除了绑定 return mAllowRebind; } @Override public void onRebind(Intent intent) { // 某客户端正用bindService()绑定到服务, // 而onUnbind()已经被调用过了 } @Override public void onDestroy() { // 服务用不上了,将被销毁 }}
代码实例:
LocalService.java
package com.app.servicetest;import android.app.Service;import android.content.Intent;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.util.Log;import android.widget.Toast;public class LocalService extends Service { boolean flag = true;int count=0; @Override//创建一个服务 继承自Service 重写 onBind方法public IBinder onBind(Intent arg0) { // 不支持绑定,所以返回nullreturn null;} //创建HanderHandler handler = new Handler(){public void handleMessage(android.os.Message msg) {Toast.makeText(LocalService.this, count+"", Toast.LENGTH_SHORT).show();};};@Overridepublic void onCreate() {super.onCreate(); new Thread(new Runnable() {@Overridepublic void run() {while(flag){ try { Log.d("--------------", count+" "); Message msg = new Message(); handler.sendMessage(msg); count++; Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace();}} }}).start() ; }@Overridepublic void onDestroy() {Toast.makeText(this, "service done", Toast.LENGTH_SHORT).show(); flag = false;super.onDestroy();}}MainActivity.java
package com.app.servicetest;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {Intent intent ;Button button_start,button_stop;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);button_start = (Button) findViewById(R.id.button1);button_stop = (Button) findViewById(R.id.button2);button_start.setText("创建服务");button_stop.setText("Stop"); button_start.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {intent = new Intent(MainActivity.this, LocalService.class); //启动服务startService(intent);Toast.makeText(MainActivity.this, "启动", 0).show();}});button_stop.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) { //停止 服务stopService(intent);Toast.makeText(MainActivity.this, "Stop", 0).show();} });} }
- Android Service服务的生命周期
- Android:Service:服务的生命周期
- Android Service---管理服务的生命周期
- Android Service---管理服务的生命周期
- Android管理服务(Service)的生命周期(lifecycle)
- Android Service---管理服务的生命周期
- 管理服务的生命周期 Android Service
- Android管理服务(Service)的生命周期(lifecycle)
- service服务的生命周期
- Android Service 服务及生命周期
- Android -- service 服务的创建与使用,生命周期,电话监控器
- Android的服务(Service)(一)生命周期
- Android的服务(Service)(一)生命周期
- Android之Service(四):服务的生命周期
- Android的服务(Service)(一)生命周期
- Android服务Service详解(作用,生命周期,AIDL)系列文章--服务的生命周期
- Android Service的生命周期
- Android 的Service生命周期
- Android SharedPreferences
- 十道海量数据处理面试题与十个方法大总结
- 从VC6到VC2008移植代码问题总结收藏
- android camera(四):camera 驱动 GT2005
- 初识block-转自CocoaChina
- Android Service服务的生命周期
- iOS开发者必备的几个国外学习网站
- Cow Bowling(ACM三部曲一)
- Radar Installation(ACM三部曲一)
- Human Gene Functions
- Pearls(ACM三部曲一)
- Alignment(ACM三部曲一)
- 多重背包
- 计算直线的交点数