我想在我的android應用程序中的一個單獨的線程中定義一個偵聽器,但是,線程在此之前退出並且不等待要調用的回調函數。android在一個單獨的線程中定義偵聽器
下面的代碼片段:
new Thread(new Runnable() {
public void run() {
ServiceConnection conn = new ServiceConnection() {
public void OnServiceConnected(ComponentName name, IBinder service) {
obj = <AIDL interface>.Stub.asInterface(service);
}
public void onServiceDisconnected(ComponentName name) {
obj = null;
}
Intent intent = new Intent("<service name>");
context.startService(intent);
boolean status = context.bindService(intent, conn, Context.BIND_AUTO_CREATE);
}).start();
現在,當從主線程,我開始這個線程等待onServiceConnected()的情況發生,它會等待永遠被永遠不會調用。我也檢查了這個線程的狀態,它說「TERMINATED」。任何想法如何解決這個問題?
在運行方法中,你期望它停止嗎? –
所以基本上我希望線程是活着的,因爲它有監聽器實現。如果它終止,監聽器將永遠不會被調用。 – pree
當線程從run()方法返回時,它被終止。這與它可能創建的對象的生命週期無關。 –