在哪里启动线程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在哪里启动线程?相关的知识,希望对你有一定的参考价值。
根据android文档,应使用service执行长时间运行的任务,并且service应该在单独的线程中。我有以下问题吗?注意:我使用的是普通服务而非意图服务。1默认情况下,服务运行在主线程中,我需要在其中创建线程以执行长时间运行的任务onCreate,onStartCommand吗?2在绑定服务的情况下,我需要创建线程来执行长时间运行的任务onCreate,onBind?
答案
使用此
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;
以上是关于在哪里启动线程?的主要内容,如果未能解决你的问题,请参考以下文章