我有一个BroadCastRecevier
,它在asnyc任务中工作,它在服务器发送消息时工作,然后广播将此服务器消息发送到活动。当活动获取消息时,我正在使用Handler
进行一些处理。但是,有时处理程序不会被触发。我的意思是广播发送三条消息,但处理程序工作两次。使用BroadCastReceiver实现服务
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作为参数发送。我怎样才能使这个处理程序在服务中工作?
我会建议你将你的处理程序中onStartCommand()服务 – Nabin 2014-08-28 10:53:43