2012-02-17 60 views
0

嗨我使用此代碼從BroadCastReceiver調用服務,但它不工作。 這裏是代碼:BroadCastReceiver calls Service

public class AlarmReceiver extends BroadcastReceiver { 
     @Override 
    public void onReceive(Context context, Intent intent) { 
     System.out.println("luli"); 
     Intent myIntent=new Intent(context,AlarmReceiver.class); 
     // myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     context.startService(myIntent); 
    } 
} 

然後在我的服務我有這樣的代碼:

public class AlarmService extends Service { 

@Override 
public IBinder onBind(Intent arg0) { 
    // TODO Auto-generated method stub 
    System.out.println("HEY u bastard service print at least something"); 
    return null; 
} 

}

我也曾在清單中聲明該服務

什麼是錯在這裏那沒有響應服務?

+0

我從另一個類Alarm中調用BroadCastReceiver並打印該消息luli,但我也想在Service中做其他事情,例如播放一些聲音,只要我正在製作AlarmClock應用程序。 – Samuel 2012-02-17 14:21:54

+0

顯示清單和綁定您的服務的代碼。 – poitroae 2012-02-17 14:22:17

+0

這部分是在我的清單文件:<接收機機器人:名稱= 「AlarmReceiver。 」> \t <意圖濾波器> <操作機器人:名稱=「 android.intent.action.BOOT_COMPLETED」/> \t \t \t \t \t \t <服務機器人:名字= 「AlarmService。」> \t \t – Samuel 2012-02-17 14:23:05

回答

1

您覆蓋onBind()。只有當有人通過綁定創建了一個到服務的持久連接時纔會調用該方法(Context.bindService())。你應該重寫onStartCommand()

+0

等待觀望,那麼我應該怎麼添加的啓動命令( ) – Samuel 2012-02-17 14:34:07

+0

如果我刪除OnBind,然後它顯示我說錯誤服務它說實施該方法 – Samuel 2012-02-17 14:35:26

+0

是的,你必須實現onBind()。只要將方法留空即可,它不會被調用,對您的情況也沒有用處。然後添加你的日誌調用(在這種情況下是println)到onStartCommand()中。每次你現在調用startService()時,它都會打印一條日誌語句。 – 2012-02-17 14:41:37

相關問題