2015-02-07 86 views
0

我想在BroadcastReceiver中啓動Service,但是這段代碼會報錯。如何在廣播接收器中啓動服務?

那麼..我能做些什麼?

BroadcastReceiver sn_english= new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals("br1")) 
     { 

      //br1 EVENT 

     } 
     else if(intent.getAction().equals("br2")) 
     { 

      //start Service Here 
      intent = new Intent(this, English_Service.class); 
      startService(intent); 

      //br2 EVENT 

     } 



    } 
}; 
+0

什麼是你面臨的問題? – 2015-02-07 07:42:10

+0

除了使用上下文而不是此的正確答案之外,如果您尚未完成,請在清單中註冊該服務。 – Opiatefuchs 2015-02-07 07:46:34

回答

4

可能以下行引起問題:

intent = new Intent(this, English_Service.class); 

因爲this意味着onReceive方法的情況下

使用context,而不是作爲this第一個參數Intent構造:

​​
3

你缺少Context ..

改變這兩條線

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

​​
1

只需使用這些線

intent = new Intent(getApplicationContext(), English_Service.class); 
getApplicationContext().startService(intent);