2013-07-29 212 views
0

嗨我開發了一個小的Android應用程序,我在其中使用一個活動一個意圖服務和一個廣播接收器。 所以我的代碼如下所示:安卓廣播接收器不與意圖接收器

public class Main_Activity extends Activity { 

    private ResultReceiver resultReciver; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_); 
     Log.i("***************************88", "inside activity on create"); 

     IntentFilter filter = new IntentFilter("com.nilkash.broadcast.receiver"); 
     resultReciver = new ResultReceiver(); 
     registerReceiver(resultReciver, filter); 
     //LocalBroadcastManager.getInstance(this).registerReceiver(resultReciver, filter); 

     Intent intent = new Intent(this, ExampleService.class); 
     startService(intent); 

    } 

    public class ResultReceiver extends BroadcastReceiver{ 

     public ResultReceiver() 
     { 

     } 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      // TODO Auto-generated method stub 
      Log.i("**********************", "inside broadcast receiver: "); 
     } 

    } 

} 

和意圖服務

public class ExampleService extends IntentService{ 


    public ExampleService(String value) 
    { 
     super(value); 
    } 

    public ExampleService() 
    { 
     super(""); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 
     // TODO Auto-generated method stub 
     Log.i("********************************", "inside intetn reciver: "); 
     Intent broadcastIntent = new Intent(); 
     broadcastIntent.setAction("com.nilkash.broadcast.receiver"); 
     //broadcastIntent.putExtra("value", "nilkash"); 
     sendBroadcast(intent); 
     //LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 
    } 
} 

清單文件,我定義的服務。 所以我的問題是,我開始從活動服務和它的工作正常。從服務意圖接收我發送一個廣播接收器,但它不聽我的廣播接收器。

我做錯了什麼?需要幫忙。謝謝。

回答

4

有一個錯誤:sendBroadcast(intent);。應該是另一個意圖對象(broadcastIntent)。

+0

您好esebtsov謝謝你的幫助,但我沒有得到你的解決方案。你能解釋一下嗎? – nilkash

+1

在你的服務方法'onHandleIntent'中,你可以通過調用sendBroadcast(intent);'來發送廣播。但是應該調用sendBroadcast(broadcastIntent);'intent'意圖用於啓動服務。 – esentsov