android 62Android程序开发入门——组件生命周期之Broadcast receiver

来源:互联网 发布:vue 使用touch.js 编辑:程序博客网 时间:2024/06/05 17:53

broadcast receiver只有一个回调方法:

void onReceive(Context curContext, Intent broadcastMsg)

 当经过receiver 请求,broadcast message到达的时候, Android 调用持有message的intent的 onReceive() 方法,只有broadcast receivers执行此方法的时候才是激活的,当 onReceive()返回的时候,它就是非激活状态

一个含有激活的broadcast receiver的进程是不会被中止的。但是只含有非激活组件的进程在它占用的内存被其他程序请求的时候,任何时间都可以被中止。

当响应broadcast message的程序因为消耗很多时间而在另外一个线程 而非UI所在的线程处理的时候会出现一个问题,,当 onReceive() 开启一个线程并返回后,整个程序(包括新建的线程)状态是非激活的(除非此进程中有其他激活的组件), 因此这个进程就有被中止的危险。解决这个问题的办法是onReceive() 方法启动一个service,让sercie去做耗时的工作,这样系统就知道此进程中还有活动的工作。

原创粉丝点击