使用BroadCastReceiver实现服务

时间:2014-08-28 10:50:28

标签: android android-service android-broadcast android-handler

我有一个BroadCastRecevier在asnyc任务中工作,它在服务器发送消息时工作,然后广播将此服务器消息发送到活动。当活动收到消息时,我正在使用Handler进行一些处理但是有时处理程序不会被触发。我的意思是广播发送三条消息,但处理程序工作两次。

g.broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        srvrMessage = intent.getStringExtra("message");
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        myHandler.sendEmptyMessage(1);
    }
};

为避免此问题,我决定使用Service。我已经创建了一个服务类,并希望该处理程序在其中工作,但我无法在启动服务时将myHandler作为参数发送。如何让这个处理程序在服务中运行?