进程的优先级&为什么使用服务
来源:互联网 发布:js常用正则表达式 编辑:程序博客网 时间:2024/06/06 06:44
1. 服务: 长期后台运行的没有界面的组件
2. 不容易被回收掉,即使因内存不足回收,也会在内存充足时创建
3. android应用:什么地方需要用到服务?
天气预报:后台的连接服务器的逻辑,每隔一段时间 获取最新的天气信息
股票显示:后台的连接服务器的逻辑,每隔一段时间 获取最新的股票信息
mp3播放器: 后台长期的播放音乐。
3. android系统进程管理是按照一定的规则的:
1.应用程序一旦被打开 通常情况下关闭(清空任务栈)后进程不会停止。方便
下一次快速启动。带来内存不足的问题。
2.Android系统有一套 内存清理机制。 按照优先级去回收系统的内存。
4. 进程分为5个等级的优先级:(从高到低)
1.Foreground process 前台进程 用户正在玩的应用程序对应的进程
2.Visible process 可视进程 用户仍然可以看到这个进程的界面。
3.Service process服务进程 应用程序有一个服务组件在后台运行。
4.Background process 后台进程 应用程序没有服务在运行 并且最小化 (activity onstop)
5.Empty process 空进程 没有任何运行的activity, 任务栈空了
1. 使用子线程在后台工作,如果程序关闭,就会清空任务栈,该进程变成空进程,如果手机内存不足,安卓系统会清掉线程。
2. 长期后台运行的组件, 不要在activity开启子线程,应该是创建服务,在服务里面开启子线程。
3. 服务的目的:
1.长期后台运行。
2.提高进程的优先级,系统不容易回收掉进程,即便回收了,内存充足的时候,把进程重新创建。
例子代码
配置文件:
<service android:name="com.itheima.testservice.MyService"/>
新建服务类:
public class MyService extends Service {@Overridepublic IBinder onBind(Intent intent) {return null;}//oncreate ondestory onstart onstop onresume onpause//服务没有界面 //服务只会创建一次@Overridepublic void onCreate() {System.out.println("服务创建了");super.onCreate();}//可以开启多次@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {System.out.println("服务接收到了开启指令");return super.onStartCommand(intent, flags, startId);}@Overridepublic void onDestroy() {// TODO Auto-generated method stubSystem.out.println("服务销毁了");super.onDestroy();}}
开启服务:
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View view){Intent intent = new Intent(this,MyService.class);startService(intent);}}
- 为什么使用服务&进程的优先级
- 进程的优先级&为什么使用服务
- 20_进程的优先级&为什么使用服务
- 【黑马Android】(08)activity生命周期/横竖屏切换的生命周期/任务栈的概念/广播接收者ip拨号器/进程的优先级&为什么使用服务
- 服务 AIDL 进程优先级
- android进程优先级&有了Thread为什么还要使用service
- Android中提高后台服务进程优先级的方法
- 改变进程的优先级
- 进程优先级的设置
- android 进程的优先级
- 提高进程的优先级
- 进程的优先级
- Android的进程优先级
- 进程的优先级
- android进程的优先级
- Android的进程优先级
- Linux的进程优先级
- Android进程的优先级
- Qt中forward declaration of struct Ui::xxx的解决
- 2D Transformations
- iso隐藏键盘的方法
- struts2和springMVC框架的比较
- 博客生命
- 进程的优先级&为什么使用服务
- SQL中CONVERT转化函数的用法
- spring 源码解读与设计详解:5 XmlBeanDefinitionReader与Resource
- 符合主键在项目中的实际应用
- Volley
- Android判断应用是否在前台或后台
- Android中缩略图问题——缓存问题
- ios block 用法
- 黑马程序员----Java多线程