本文共 2019 字,大约阅读时间需要 6 分钟。
服务(Service)是Android中实现程序后台运行的解决方案,很适合执行一些不需要用户交互而且还需要长期运行的任务,比如下载,音视频的播放,串口通信等
服务不是运行在一个独立的进程中,而是依赖创建服务所在的进程,当应用程序进程被杀掉,所有依赖该进程服务也会停止运行,所以服务本身不会开启线程,所有代码默认主线程中运行。
生成MyService类public class MyServerce extends Service { @Override public void onCreate() { super.onCreate(); Log.d("MyServerce","创建服务"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d("MyServerce","每次服务启动时候调用"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Log.d("MyServerce","服务销毁"); super.onDestroy(); } @Override public void onConfigurationChanged(Configuration newConfig) { Log.d("MyServerce","配置更改"); //服务停止 stopSelf(); super.onConfigurationChanged(newConfig); } @Override public void onLowMemory() { Log.d("MyServerce","内存不足"); super.onLowMemory(); } @Override public void onTrimMemory(int level) { Log.d("MyServerce","压缩处理内存"); super.onTrimMemory(level); } @Nullable @Override public IBinder onBind(Intent intent) { return myBinder; } @Override public boolean onUnbind(Intent intent) { return super.onUnbind(intent); } @Override public void onRebind(Intent intent) { super.onRebind(intent); } @Override public void onTaskRemoved(Intent rootIntent) { super.onTaskRemoved(rootIntent); }}
四大组件都要注册
在Activity简单中使用
@Override public void onClick(View view) { switch (view.getId()){ case R.id.button_start: //启动 Intent intent = new Intent(this,MyServerce.class); startService(intent); break; case R.id.button_stop: //停止 Intent intent1 = new Intent(this,MyServerce.class); stopService(intent1); break; default: break; } }
转载地址:http://kmnvb.baihongyu.com/