Android开发Android开发Android Tips

IntentService

2020-04-29  本文已影响0人  卡路fly

正常来讲,一个服务可写成这样

public class MyService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                // do something耗时     
            }
        }).start();
        return super.onStartCommand(intent, flags, startId);
    }

    ......
}

这种服务一旦启动就会处于运行状态,必须调用stopService或者stopSelf停止,如果想要实现执行完毕自动停止功能,可以写成

public class MyService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                // do something耗时
                stopSelf();
            }
        }).start();
        return super.onStartCommand(intent, flags, startId);
    }
    ......
}

为了简化这种start、stop操作,Android提供了IntentService类。

public class MyIntentService extends IntentService {

    public MyIntentService() {
        // 1. 必须在内部调用父类有参构造函数
        super("MyIntentService");
    }


    @Override
    protected void onHandleIntent(@Nullable Intent intent) {
        // 2. 子类实现onHandleIntent,处理具体逻辑
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读