Anroid四大组件服务之本地服务的示例代码

  

服务是Android四大组件之一,与活动一样,代表可执行程序,但服务不像活动有可操作的用户界面,它是一直在后台运行。用通俗易懂点的话来说:

  

如果某个应用要在运行时向用户呈现可操作的信息就应该选择活动,如果不是就选择服务。

  

服务的生命周期如下:

  

服务只会被创建一次,也只会被销毁一次。那么,如何创建本地服务呢?
  

  

实现代码如下:
  

        包temp.com.androidserivce;      进口android.app.Service;   进口android.content.Intent;   进口android.os.IBinder;   进口android.os.SystemClock;   进口android.support.annotation.Nullable;   进口android.util.Log;/* *   *由管理员>   & lt;清单……比;   …   & lt;应用程序…比;   & lt;服务android: name="。Myservice”android:出口=" true "/比;      …      & lt;/application>      & lt;/manifest>      之前      

android:出口=" true "设置了这个属性就表示别人也可以使用你的服务。
  

  

还有一个需要注意的小点,在Myservice中可以看见我启动时用了一个子线程去帮我实现工作,那么我为什么没有直接把对循环的那段代码写在onStartCommand方法中呢,是因为写在onStartCommand中将会报ANR程序无响应的错误。就是当你所有的事情都去交给主线程做时,就会造成主线程内存溢出,它就会炸了。这个时候也可以用IntentService来取代服务。

        包temp.com.androidserivce;      进口android.app.IntentService;   进口android.content.Intent;   进口android.os.SystemClock;   进口android.util.Log;/* *   *由2017/8/18管理员。   */公开课MyService2延伸IntentService {   公共MyService2 () {   超级(" ");   }   公共MyService2(字符串名称){   超级(名称);   }      @Override   保护无效onHandleIntent(目的意图){   for (int i=0;我& lt; 10;我+ +){   SystemClock.sleep (1000);   Log.i(“测试”,我+ " ");   }   }   }      之前      

使用这个相对而言会比较简单.IntentService是服务的子类。它使用工作线程逐一处理所有启动请求。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Anroid四大组件服务之本地服务的示例代码