2012-02-17 35 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

相关问题