start方式开启服务
来源:互联网 发布:linux查看实时日志命令 编辑:程序博客网 时间:2024/05/16 18:06
android中的start开启服务的作用
在学习服务之前,我们不得不先解释一下进程的概念,进程就是系统为该应用运行时开启了一个进程同时单独开启的一个线程来运行该应用,通常该线程被称为主线程,又叫UI线程。
进程:是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。
android下四大组件都是运行在主线程中。
进程的优先级:
- Foreground progress:前台进程,优先级最高,就是正在与用户正在交互的进程。
- Visible progress:可视进程,一直影响用户看的见的进程,相当于activity执行了onPause()方法。
- Service progress:服务进程,通过startservice方法开启的服务
- background progress:后台进程,界面不可见,但是任然在运行的进程
- Empty progress:空进程,不会维持任何组件运行。
- 这五个进程中由于优先级的不同,空进程时最容易被销毁的,后台进程也比较容易销毁,所以这里需要服务进程,在后台运行的时候,不容易被销毁。
服务:
- 就是默默运行在后台的组件,可以理解为是没有前台的activity,适合用来运行不需要前台界面的代码
- 服务可以被手动关闭,不会重启,但是如果被自动关闭,内存充足就会重启
start方式开启服务的特点:
public class MyService extends Service {@Overridepublic IBinder onBind(Intent intent) { System.out.println("bind"); return null;}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) { System.out.println("start"); return super.onStartCommand(intent, flags, startId);}@Overridepublic void onCreate() { System.out.println("create"); super.onCreate();}@Overridepublic void onDestroy() { System.out.println("destroy"); super.onDestroy();}}
startService启动服务的生命周期
onCreate-onStartCommand-onDestroy
重复的调用startService会导致onStartCommand被重复调用,startservice开启的服务,该服务所在的进程会变成服务进程,可在后台运行,服务与启动它的activity将不在有关系。
如何开启服务:
public class MainActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);}public void start(View v){ //启动服务 Intent intent = new Intent(this, MyService.class); startService(intent);}public void stop(View v){ //停止服务 Intent intent = new Intent(this, MyService.class); stopService(intent);}}
这就是start方式开启的服务的特点,注意哦,这种方式开启的服务,开启之后服务与activity没有关系了,activity销毁,服务也不会停止。
0 0
- start方式开启服务
- 开启服务的方式:(1)start开启服务
- 服务的生命周期-采用start的方式开启服务
- Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务
- start开启服务的生命周期
- 服务的开启方式
- 服务的开启方式
- onBind方式开启服务
- 51服务的开启方式
- 混合的方式开启服务
- Service:bind方式开启服务
- BindService() 绑定方式开启服务
- Android混合方式开启服务
- 开启服务的方式:(2)绑定式开启服务
- 开启服务的命令-Net start命令详解
- Android两种开启服务的比较(Start Bind)
- 开启服务的命令-Net start命令详解
- 服务开启的2种方式
- Unity 截屏 录屏 的方法参考
- python 下 mongodb 简单操作整理
- GridView的用法
- Glide源码解析02-load
- 关于一个页面的后台制作
- start方式开启服务
- Android NotificationManager 和 Notification的使用总结
- 在win7下安装SQL sever2005(完整版)
- Web应用程序配置
- java应用程序利用Exe4j打包exe文件 以及获取exe执行路径
- 解决Android内存泄漏--MAT\android studio使用方法实例
- 迷宫
- STL之自己实现string容器
- DataSet对象及使用