2012-06-23 52 views
3

通常你開始喜歡這個發送一個BroadcastReceiver意圖服務

Intent i = new Intent(context,MessageService.class); 
context.startService(i); 

服務,但我想要做的就是發送在一個BroadcastReceiver接收到服務的意圖。如果我按照上面顯示的方式啓動服務,那麼無法獲得BroadcastReceiver的意圖是正確的?

基本上,我只是希望我的BroadcastReceiver開始我的服務,然後讓服務本身處理什麼樣的意圖收到

這可能嗎?

+0

我認爲你問你是否可以通過你在無線電通信局收到的相同意圖來啓動該服務,對吧? –

回答

4

從廣播接收器發送意向服務爲:

Intent intent = new Intent(context,MessageService.class); 
String value = "String you want to pass"; 
String name = "data"; 
intent.putExtra(name, value); 
context.startService(intent); 

Reciver意圖在onStartCommand方法服務:

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show(); 
    if (intent.getStringExtra("data") != null) { 
    { 
     String str=intent.getStringExtra("data");//get data here sended from BroadcastReceiver 
    } 

    return super.onStartCommand(intent,flags,startId); 
} 

我們如何服務和廣播接收器之間的溝通看this post

+0

我認爲'意圖intent'應該是'intent intent2open'爲你的代碼編譯。我對嗎? –

相關問題