IntentService的使用

Posted 技术丶从积累开始

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IntentService的使用相关的知识,希望对你有一定的参考价值。

1.为什么需要IntentService

   是LocalService的包装类,简便Service的创建,使用的是startService(),也就是访问者退出Service不会消失。

2.实现原理

步骤一:

public FirstService extends IntentService{
  public FirstService (String name){
     super(name);//需要为该Service命名
  }
  
  @Override
  protected void onHandleIntent(Intent intent) {
      //用来实现的方法的地方
  }
}        

步骤二:在androidManifest.xml中注册Service

<Service android:name = ".FirstService">
</Service>

步骤三:创建Intent信息发送给Service。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent = new Intent(this,FirstService.class);
        startService(intent);//将intent发送给Service
    }
}

原理:当Service第一次接收到intent的时候,IntentService完成启动,触发一个后台线程,将intent放入队列尾部。然后在后台线程上逐个调用队列的intent触发onHandleIntent(Intent)方法。

 

以上是关于IntentService的使用的主要内容,如果未能解决你的问题,请参考以下文章

IntentService:如何正确入队?

使用 IntentService 使用 Camera2 拍照

我应该使用 IntentService 还是 Service 进行 UI 更新?

在android中使用IntentService从服务器下载文件

如何从 WakefulBroadcastReceiver 启动 IntentService

从 IntentService 迁移到 Android O 的 JobIntentService