2013-07-09 65 views
0

我想從使用廣播接收器的服務發送字符串。 在到達某個位置時,我想發送廣播接收器,但廣播接收器無法發送任何內容,也不會在Logcat中發生任何錯誤。此外,我無法在活動或服務中收到任何錯誤。服務廣播接收器後沒有響應

以下是我在服務類代碼: -

public class MyLocationListener implements LocationListener{ 

    @Override 
    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 
     inte.setAction("hello"); 
     inte.putExtra("StringFromService", genre); 
     inte.addCategory(Intent.CATEGORY_DEFAULT); 
     sendBroadcast(inte); 
     } 

接收另一個類中: -

public class XYZ extends ListActivity { 



public BroadcastReceiver myBR= new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     String x= intent.getAction(); 
     Log.d("INside BroadcastReceiver", "inside" + x); 

     if(x.equals("hello")){ 


      Toast.makeText(XYZ.this,"hello", Toast.LENGTH_LONG).show(); 
     } 
    } 
}; 







@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.xyz); 
registerReceiver(myBR, new IntentFilter("hello")); 
    } 

} 
+0

您何時/如何啓動服務? – Selvin

+0

你註冊了你的BroadcastReciever嗎? –

+0

服務從另一個活動的按鈕開始,並且是廣播接收器已註冊。請檢查onCreate功能。 –

回答

0

要觸發廣播,你在onResume()方法這樣註冊的接收器:

registerReceiver(myBR, new IntentFilter("hello")); 

和註銷在廣播方法

unregisterReceiver(myBR);