【发布时间】:2018-08-09 05:34:43
【问题描述】:
我想点击“开始”按钮,以便应用程序可以同时启动和运行两个服务。
我创建了两个名为ServiceA 和ServiceB 的服务。对于每项服务,我已经
创建了一个可运行的方法(在 onStartCommand 中)来逃避 ANR 问题。我还创建了一个开始按钮,这样当我点击开始按钮时,我希望ServiceA和ServiceB可以同时开始,或者说同步。
我尝试了很多方法。第一次尝试只是一个一个地启动服务,但是失败了:
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent1 = new Intent(MainActivity.this, ServiceA.class);
startService(intent1);
Intent intent2 = new Intent(MainActivity.this, ServiceB.class);
startService(intent2);
}
});
然后我打算尝试AsyncTask,但是由于服务是在后台使用处理程序运行的,如果我使用AsyncTask,它将创建另一个后台处理程序,这是不适用的。您有什么建议可以一键同时运行两个服务吗?
【问题讨论】:
-
不是。如果只有一个处理器,它一次只能执行一项任务。如果有多个处理器......也许你可以使用它,但不确定如何(或为什么)。两者启动时间很短,有什么问题?
-
exactly the same time你绝对不能期待这个。 -
您好 Stultuske 先生,问题是我尝试使用上述方式,但它只会运行 serviceA,我希望将 serviceA 和 serviceB 放在一次点击事件中,我认为这可能与线程同步问题,但由于我在android开发方面的经验有限,我不知道任何解决方案,是否可以使用executeOnexecuter来完成这项工作?感谢您的 cmets
标签: java android service android-asynctask