【发布时间】:2014-08-28 10:50:27
【问题描述】:
我有一个BroadCastRecevier,它在一个异步任务中工作,它在服务器发送消息然后广播发送这个服务器消息到活动时工作。当活动收到消息时,我正在使用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 作为参数发送。我怎样才能让这个处理程序在服务中工作?
【问题讨论】:
-
我建议您将处理程序移到服务的 onStartCommand() 中
标签: android android-service android-broadcast android-handler