我对IntentService有疑问
假设我有两个意图服务类,它们分开执行彼此无关的任务。
public class TaskA extends IntentService{
@Override
protected void onHandleIntent(Intent workIntent) {}
}
第二个
public class TaskB extends IntentService{
@Override
protected void onHandleIntent(Intent workIntent) {}
}
如果我先启动TaskA然后再启动下一行启动TaskB,那么TaskB是否必须等待TaskA完成?
我知道如果我再次启动相同的intent服务,它会被添加到队列中,但这是应用于实例还是整个应用程序的全局?
答案 0 :(得分:2)
如果我先启动TaskA然后下一行启动TaskB,那么TaskB是否必须等待TaskA完成?
每个IntentService
都有自己的工作线程。具体来说,它是HandlerThread
的一个实例,如the source code to IntentService
中所示。因此,IntentService
个onHandleIntent()
IntentService
不应该阻止其他onHandleIntent()
function isAdult(day, month, year) {
var age = 18;
var mydate = new Date();
mydate.setFullYear(year, month-1, day);
var currdate = new Date();
var setDate = new Date();
setDate.setFullYear(mydate.getFullYear() + age, month-1, day);
if ((currdate - setDate) > 0) return true;
return false;
}
var dob = new Date("1980-12-01");
if( isAdult(dob.getDate(), dob.getMonth()+1, dob.getFullYear()) ) {
console.log("Adult")
}
。
答案 1 :(得分:0)
所有请求都在一个工作线程上处理 - 它们可能需要多长时间(并且不会阻止应用程序的主循环),但一次只能处理一个请求。