service和activity是在同一个线程里面:
直接上代码:
public class MyServiceActivity extends Activity { protected static final String TAG = "MyServiceActivity"; private Button btnStartNormalService; private Button btnStartIntentService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnStartNormalService=(Button)findViewById(R.id.btnStartNormalService); btnStartIntentService=(Button)findViewById(R.id.btnStartIntentService); btnStartIntentService.setOnClickListener(listener); btnStartNormalService.setOnClickListener(listener); } private OnClickListener listener=new OnClickListener() { @Override public void onClick(View v) { Intent intent; switch (v.getId()) { case R.id.btnStartNormalService: intent=new Intent(MyServiceActivity.this, mService.class); Log.i(TAG, "主线程ID:"+Thread.currentThread().getId()); startService(intent); break; case R.id.btnStartIntentService: // intent=new Intent(IntentActivity.this, ExampleIntentService.class); // Log.i(TAG, "主线程ID:"+Thread.currentThread().getId()); // startService(intent); break; default: break; } } }; }public class mService extends Service {
private static final String TAG = "MyServiceActivity"; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(TAG,"Myservices线程Id"+Thread.currentThread().getId()); return START_STICKY; //简括一中有介绍 } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } }
AndroidManifest.xml文件中配置service:
<service android:name="mService"/>
最终log出来在结果在线程id都为1,相等