activity 中 service 的方法是否异步执行

Bravian 发布于 2013/12/02 12:53
阅读 136
收藏 0
@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TelephonyManager service = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
		System.out.println(Thread.currentThread().getId());
		service.listen(new PhoneStateListener(){
			@Override
			public void onCallStateChanged(int state, String incomingNumber) {
				super.onCallStateChanged(state, incomingNumber);
				System.out.println(Thread.currentThread().getId());
			}
		}, PhoneStateListener.LISTEN_CALL_STATE);
	}

我在 activity 类中的 onCreate 方法中写了如下方法, 想要测试一下, android 中 service 的方法提供的方法是否是阻塞方法, android 中 service 提供的方法是否是异步方法.也就是想知道 listener 方法是在当前 ui thread 中执行的还是在 service 所在的线程中执行的.还想测试一下 listener 的回调方法, 在哪个线程中执行的.结果是 listener 的回调方法 在 ui thread 中执行的, 我很奇怪为什么不是在 service 的线程中执行. listen 方法暂时还没有想到办法怎么测试在哪个线程中执行.



加载中
返回顶部
顶部