How to start a new Thread in a service?

前端 未结 4 1546
甜味超标
甜味超标 2020-12-12 20:08

I am developing an Android app and I am doing some heavy work (bringing data from an online web page and parsing it to store in database) in a service. Currently, it is taki

4条回答
  •  无人及你
    2020-12-12 20:55

    You can use HandlerThread and post to it, here is an example to service that has one.

    public class NetworkService extends Service {
    
        private HandlerThread mHandlerThread;
        private Handler mHandler;
        private final IBinder mBinder = new MyLocalBinder();
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            mHandlerThread = new HandlerThread("LocalServiceThread");
            mHandlerThread.start();
    
            mHandler = new Handler(mHandlerThread.getLooper());
        }
    
        public void postRunnable(Runnable runnable) {
            mHandler.post(runnable);
        }
    
        public class MyLocalBinder extends Binder {
            public NetworkService getService() {
                return NetworkService.this;
            }
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return mBinder;
        }
    }
    

提交回复
热议问题