2013-08-29 31 views
0

延長我有我的一些數據發送給我的活動如何發送使用resultreceiver數據,而類是從線程

public class baseApi extends Service { 

@Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
    //get the receiver object 
     resultReceiver = intent.getParcelableExtra("receiver"); 
} 


    private BroadcastReceiver datachanged_receiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
       //HERE I send some data like this 
       Bundle bundle = new Bundle(); 
       bundle.putString("data", "My data goes here"); 
       resultReceiver.send(100, bundle); 
}}; 
} 

在同一個類中服務類我有一個類擴展「線程」 ,並且這個類也打算使用resultReceiver向UI發送一些數據,但它不會給出任何異常,但在UI端沒有接收到數據,而resultReceiver通過廣播接收器發送數據的效果很好。

public class baseApi extends Service { 

@Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
    //get the receiver object 
     resultReceiver = intent.getParcelableExtra("receiver"); 
} 


    private BroadcastReceiver datachanged_receiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
       //HERE I send some data like this 
       Bundle bundle = new Bundle(); 
       bundle.putString("data", "My data goes here"); 
       resultReceiver.send(100, bundle); 
}}; 

class actionThread extends Thread{ 
    @Override 
    public void run() { 
     super.run(); 
     try{ 
         //send this data to the service   
      Bundle bundle = new Bundle(); 
      bundle.putString("data","More data goes here"); 
      resultReceiver.send(200, bundle); 
     } 
     catch(Exception ex) 
     { 

     } 
    } 

} 
} 
+1

」它沒有給出任何例外「。你怎麼能知道,因爲你抓住了所有的例外情況,而對他們什麼都不做? –

+0

我正在捕獲所有的異常,但不是在上面的代碼中,它只是我的用例 –

+0

在上面代碼的'actionThread'類中的表示,您可以使用'try .... catch(Exception ex){**這裏沒有什麼**};' –

回答

1

在android中,您可以使用Handler與UI線程進行通信。改用Hanlder.PostHandlerThread。 「

相關問題